您的位置:首页 > 编程语言 > MATLAB

matlab图像陷波滤波以及低通滤波

2016-04-15 09:57 633 查看
clear;
close all;
src = im2double(imread('image3.bmp'));
src = rgb2gray(src);
figure;
imshow(src);
title('原始图像');
[w h] = size(src);

srcf = fft2(src);
srcf = fftshift(srcf);
figure;
imshow(srcf);
%  低通滤波
% flt = zeros(size(src));
% rx1 = w/2;
% ry1 = h/2;
% r = min(w,h)/3;
% for i = 1:w
%     for j = 1:h
%         if(rx1-i)^2 +(ry1 - j)^2 <= r*r
%             flt(i,j) = 1;
%         end
%     end
% end
% 陷波滤波
flt = ones(size(src));
r = min(w,h)/12;
rx1 = r
ry1 =h/2
for i = 1:w
for j = 1:h
if(rx1-i)^2 +(ry1 - j)^2 <= r*r
flt(i,j) = 0;
end
if(w-rx1-i)^2 +(h-ry1 - j)^2 <= r*r
flt(i,j) = 0;
end
end
end
figure;
imshow(flt);
title('滤波器图像');
dfimg = srcf.*flt;
dfimg = ifftshift(dfimg);
dimg = ifft2(dfimg,'symmetric');
figure;
imshow(dimg):title('滤波后');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab