Я хочу, чтобы применить следующий фильтр к изображению:Фильтрация изображения в области DFT в MATLAB
h = [1/4 1/16 1/4;
1/16 1/8 1/16;
1/4 1/16 1/4;]
Я следовать шагам, описанным ниже, но я не получаю правильный результат. Может кто-нибудь мне помочь? Я не могу найти, что не так с моими шагами. Вот код:
I = imread('cameraman512.jpg');
h = [1/4 1/16 1/4; 1/16 1/8 1/16; 1/4 1/16 1/4;]
%padding image
Ip = padarray(I,[512 512],'post');
figure();
imshow(Ip);
%padding filter
Hp = padarray(h,[512 512],'post');
figure();
imshow(Hp);
%image fourier
dftI = fft2(I);
figure();
imshow(dftI);
% filter fourier
dftH = fft2(H);
figure();
imshow(dftH);
%shifting image and filter
I = fftshift(Ip);
figure();
imshow(I,[]);
H = fftshift(Hp);
figure();
imshow(H,[]);
G = dftI.*dftH;
figure();
imshow(G);
g=real(ifft2(G));
figure();
imshow(G);
я должен применить ч фильтр моего изображения и показать все изображения, шаг за шагом, но я думаю, что я совершил ошибку и окончательное изображение не является решающим – athinatha
Посмотрите http://stackoverflow.com/questions/9583486/how-to-apply-a-filter-in-matlab – macduff
@macduff OP хочет применить фильтрацию в частотной области, вероятно, для задания. –