Неизвестная проблема с процессом уточнения изображения - PullRequest
1 голос
/ 19 октября 2019

Как показано в этой работе ( код ), следующий код может улучшить изображение (т. Е. Карту серой шкалы).

УточнениеФункция:

function sal = Refinement(y, dim)
th_2 = graythresh(y);
if dim == 1
    sal = y;

    sal(y<th_2) = 10*(y(y < th_2))/th_2 - 10;
    sal(y>=th_2) = 10*(y(y >= th_2) - th_2)/(1-th_2);
    sal = 1 ./ (1 + exp(-sal)) + y;
    sal = normalization(sal, 0);
elseif dim == 2
    [r, c] = size(y);
    y_col = reshape(y,[1 r*c]);
    sal_col = y_col;
    sal_col(y_col<th_2) = 10*(y_col(y_col < th_2))/th_2 - 10;
    sal_col(y_col>=th_2) = 10*(y_col(y_col >= th_2) - th_2)/(1-th_2);
    sal_col = 1 ./ (1 + exp(-sal_col)) + y_col;
    sal = reshape(sal_col, [r c]);
end
end

функция нормализации:

function matrix = normalization(mat, flag)
 % INPUT : 
 %         flag:  1 denotes that the mat is a 3-d matrix;
 %                0 denotes that the mat is a matrix;
 %         
 if flag ~= 0
dim = size(mat,3);
matrix = mat;
for i = 1:dim
   matrix(:,:,i) = ( mat(:,:,i) - min(min(mat(:,:,i)))) / ( max(max(mat(:,:,i))) - min(min( mat(:,:,i))) + eps);
end
else
     matrix = ( mat - min(min(mat)))/( max(max(mat)) - min(min(mat)) + eps);
end

Однако после применения функции значения матрицы изображения будут изменены, результат останетсятак же, как изображение до уточнения.

Есть ли концептуальная ошибка с этим или реализация не удалась?

PS Входное изображение (карта достоверности) для нефтеперерабатывающего завода выглядит примерно так, как показано ниже. на уточненной карте значимости передний план (сатрафиш на этом изображении) должен выделяться (становится по возможности однородно белым), а фоновый шум должен быть удален (по возможности становится однородно черным):

...