matlab 图像高通滤波用什么函数
1个回答
2017-01-16
展开全部
matlab 图像高通滤波用什么函数
彩色图像由RGB三色分量构成,彩色图像的滤波是分别对三个分量进行滤波.
originalRGB = imread('peppers.png');
subplot(311);
imshow(originalRGB);
title('原始图片');
[m n index]=size(originalRGB);
lpf=zeros(m,n);
%首先构造频域理想低通滤波器
for i=1:m
for j=1:n
d = sqrt((i-round(m/2))^2+(j-round(n/2))^2);
if d<=50 %截止频率
lpf(i,j)=1;
end
end
end
subplot(312);
imshow(uint8(255.*lpf));title('低通滤波器');
for i=1:3
c = originalRGB(:,:,i); %分别取R/G/B分量
%对每个分量进行滤波
s = fftshift(fft2(c));
d = s.*lpf;
c = real(ifft2(ifftshift(d)));
filterRGB(:,:,i)=c;
end
subplot(313);
imshow(filterRGB);
title('低通滤波图片');
彩色图像由RGB三色分量构成,彩色图像的滤波是分别对三个分量进行滤波.
originalRGB = imread('peppers.png');
subplot(311);
imshow(originalRGB);
title('原始图片');
[m n index]=size(originalRGB);
lpf=zeros(m,n);
%首先构造频域理想低通滤波器
for i=1:m
for j=1:n
d = sqrt((i-round(m/2))^2+(j-round(n/2))^2);
if d<=50 %截止频率
lpf(i,j)=1;
end
end
end
subplot(312);
imshow(uint8(255.*lpf));title('低通滤波器');
for i=1:3
c = originalRGB(:,:,i); %分别取R/G/B分量
%对每个分量进行滤波
s = fftshift(fft2(c));
d = s.*lpf;
c = real(ifft2(ifftshift(d)));
filterRGB(:,:,i)=c;
end
subplot(313);
imshow(filterRGB);
title('低通滤波图片');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询