2015-06-08 2 views
0

У меня есть шумное изображение, которое я пытаюсь очистить с помощью фильтра нижних частот (код ниже, изменен от here). Изображение, которое я получаю в результате, по существу идентично тому, которое я дал в качестве ввода.Фильтр нижних частот не работает

Я не эксперт, но мой вывод заключается в том, что входное изображение настолько шумно, что шаблоны не найдены. Вы согласны? Есть ли у вас предложение о том, как интерпретировать результат?

Результат от кода:

enter image description here

Входное изображение:

enter image description here

Код:

clear; close all; 
frame = 20; 
size_y = 512; % This is actually size_x 
size_x = 256; % This is actually size_y 
roi=5;thresh=100000; 

AA = imread('image.png'); 
A = zeros(size_x, size_y); 
A = AA(1:size_x, 1:size_y); 
A(isnan(A)) = 0 ; 

B = fftshift(fft2(A)); 
fabs = abs(B); 

figure; imshow(B); 

local_extr = ordfilt2(fabs, roi^2, ones(roi)); % find local maximum within 3*3 range 

result = (fabs == local_extr) & (fabs > thresh); 

[r, c] = find(result); 
for i=1:length(r) 
    if (r(i)-128)^2+(c(i)-128)^2>thresh % periodic noise locates in the position outside the 20-pixel-radius circle 
     B(r(i)-2:r(i)+2,c(i)-2:c(i)+2)=0; % zero the frequency components 
    end 
end 

Inew=ifft2(fftshift(B)); 
figure; 
subplot(2,1,1); imagesc(A), colormap(gray); title('Original image'); 
subplot(2,1,2);imagesc(real(Inew)),colormap(gray); title('Filtered image'); 
+2

Не копаясь в изображении, кажется, что либо частота среза фильтра, либо амплитуда отсечки не «захватывают» высокочастотный шум на вашем входе. Попробуйте изменить частоту среза. –

+0

Спасибо Карл. У меня тоже была такая же идея; Я играл со значениями «roi» и «threshold», но мне не удалось получить более значимый результат. –

+0

Какие шаблоны вы специально ищете? Круги? Любой объект? . Посмотрев на входное изображение, ясно, что одна ключевая проблема заключается в том, что он слишком узкий, вы можете его выравнивать, прежде чем приступать к процессу для дальнейшей обработки. – KillaKem

ответ

2

Для фильтрации такого рода сигнала, вы можете попробовать используйте средний фильтр. Он может быть более подходящим, чем средство или фильтр Гаусса. Медианный фильтр очень эффективен при шуме «соль и бумага», когда среднее просто размывает шум.

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

Смежные вопросы