当前位置:服务支持 >  技术文档 >  MATLAB频率域滤波:平滑滤波器处理图像代码

MATLAB频率域滤波:平滑滤波器处理图像代码

阅读数 97
点赞 60
article_banner

以下是用频率域平滑滤波器处理图像的MATLAB代码:

% 读入图像

img = imread('example.jpg');

% 转换为灰度图像

grayImg = rgb2gray(img);

% 对灰度图像进行傅里叶变换

f = fft2(double(grayImg));

% 将频谱中心移到图像中央

shifted_f = fftshift(f);

% 设置滤波器半径为100

H = ones(size(grayImg));

cy = ceil(size(grayImg,1)/2);

cx = ceil(size(grayImg,2)/2);

radius = 100;

for i=1:size(grayImg,1)

for j=1:size(grayImg,2)

if sqrt((i-cy)^2 + (j-cx)^2) > radius

H(i,j) = 0;

end

end

end

% 进行频域滤波

filtered_f = shifted_f.*H;

% 将频谱中心还原到原始位置

filtered_unshifted_f = ifftshift(filtered_f);

% 对滤波后的频谱进行逆变换

filtered_img = real(ifft2(filtered_unshifted_f));

% 显示原始图像和滤波后的图像

subplot(1,2,1), imshow(grayImg)

title('原始图像')

subplot(1,2,2), imshow(uint8(filtered_img))

title('平滑后的图像')

其中,我们通过 fft2 函数对灰度图像进行傅里叶变换。然后,我们将频谱中心移到图像中央,这样可以方便地对频域滤波器进行处理。接着,我们设置了一个半径为100的圆形滤波器。最后,我们将频谱中心还原到原始位置,并对滤波后的频谱进行逆变换,得到滤波后的图像。最后,我们用 imshow 函数显示原始图像和滤波后的图像。

相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空