2013-10-27 3 views
0

В приведенном ниже изображении я вычислил преобразование Фурье изображения. Теперь я хочу применить идеальный фильтр высоких частот на том же изображении, используя DO = 50. Код преобразования Фурье упоминается в Image. enter image description hereФильтр преобразования Фурье

+0

если у вас есть процесс сигнала инструментов, то вы можете использовать fdatool для проектирования фильтров и позже, вы можете использовать коэффициенты фильтра команды фильтра. – User1551892

+0

Я не хочу использовать панель инструментов. Я хочу сделать это с помощью кода. –

ответ

1

Я не знаю, какой идеальный фильтр высоких частот. Итак, я предположил, что HPF представляет собой круглый фильтр. Это мой код.

lena = im2double(rgb2gray(imread('lena.bmp'))); 
D0 = 50; 
lpf = zeros(size(lena)); 
base_x = linspace(-size(lena,1)/2,size(lena,1)/2,size(lena,1)); 
base_y = linspace(-size(lena,2)/2,size(lena,2)/2,size(lena,2)); 
[x,y] = meshgrid(base_x, base_y); 
lpf(x.^2+y.^2<D0^2) = 1; 
hpf = 1-lpf; 

LENA = fftshift(fft2(lena)); 
RESULT = LENA.*hpf; 
result = abs(ifft2(RESULT)); 
figure, imshow(result,[]) 

Во-первых, я делаю HPF с использованием 1-LPF. (Форма LPF - круг.) И пиксельное умножение изображения HPF. Наконец, ifft IMAGE.

При запуске вышеуказанного кода вы можете получить этот результат.

original image Исходное изображение HPF image HPF Изображение result image изображение Результат

+1

Почему бы вам не «fftshift» вернуться после HPF? – Shai

+1

О! Я забыл применить fftshift! 'result = ifft2 (ifftshift (RESULT)); 'более правильный ответ. Благодаря! –

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