matlab进行图像傅里叶变换去噪(fft2、fftshift、ifft2、ifftshift)

在数字图像处理中,去噪是一个经常进行的操作。除了在空域上进行去噪,比如使用均值滤波、中值滤波等等滤波器外,利用傅里叶变换在频域上进行操作也是一种非常有效的方式。使用傅里叶变换进行图像去噪的原理如下:我们知道,图像中的噪声往往代表着图像上灰度值的突变,从而对应着高频部分,而图像中的其他大部分内容则主要集中在低频部分。因此,通过将空间图像进行傅里叶变换后,转化到频域上,我们可以得到这个图像每个...
摘要由CSDN通过智能技术生成

在数字图像处理中,去噪是一个经常进行的操作。
除了在空域上进行去噪,比如使用均值滤波、中值滤波等等滤波器外,利用傅里叶变换在频域上进行操作也是一种非常有效的方式。

使用傅里叶变换进行图像去噪的原理如下:
我们知道,图像中的噪声往往代表着图像上灰度值的突变,从而对应着高频部分,而图像中的其他大部分内容则主要集中在低频部分。
因此,通过将空间图像进行傅里叶变换后,转化到频域上,我们可以得到这个图像每个像素的相位和幅度值。
对于相位而言,代表着图像中的位置形状信息,一般情况下我们不对其做处理,否则可能就无法恢复出原始图像的形状。
而幅度值则主要代表着能量的大小,也就是每一个频率上的能量大小。我们只要将高频部分的能量值置为0,就可以去除噪声。
需要注意的是,在进行傅里叶变换(fft2)后,低频部分集中分布在四个角落,通过移位(fftshift)之后,将其集中到图像的中心,这只是为了便于处理。
当我们对幅值进行处理后,再进行反移位(ifftshift)恢复到原始的分布情况,之后结合相位计算出每个像素对应的值。
对其进行傅里叶反变换(ifft)后,就可以恢复出时域图像,此时图像上的噪声就可以去除了。

一个具体例子如下所示:
代码:

clear;
clc;
F = imread('C:\Users\asus1\Desktop\IMG_20170708_090611.jpg');
F1 = rgb2gray(F
  • 43
    点赞
  • 289
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值