matlab 除噪点,在matlab中使用FFT去除图像中的图案和噪声

本文探讨了在MATLAB中使用FFT和fftshift处理clown.jpg图像以去除图案和噪声的方法。作者手动归零FFT图像的“星星”,然后通过设定阈值创建滤波器来改进图像质量。寻求自动化此过程的建议,尤其是如何创建一个高通滤波器,同时保留DC分量。提供的代码展示了图像预处理、FFT应用以及结果可视化的过程。
摘要由CSDN通过智能技术生成

我正在使用clown.jpg图像来消除其明显的图案/噪点.

在拍摄图像之前,我做的第一步是对二维像素(即256 x 256)的平方图像进行调整.在MATLAB中使用FFT和fftshift,以图像中心的强度为基础,进行快速傅立叶变换.以下图像是使用上述功能的结果.

我成功地通过在FFT图像上手动归零“星星”来消除模式/噪点,如下所示:

采用IFFT,我得到更好的图片质量(未显示).

我有一个问题是如果有一个自动化的方式使“星星”归零?由于我们不想删除最亮的“星”,DC分量,也不是低值,我创建了一个图像零位置的间隔.这样一个阈值如下:

filter = (fLog > .7*max(fLog(:)) ) | (fLog < .25*max(fLog(:)) )

where fLog is the log(1+abs(Fourier image)) and .7 and .25 are the corresponding

interval percentages.

输出掩码(我将乘以傅里叶图像)将在下面找到.黑色对应于0的值,白色对应于1.请注意,该掩码的过滤将删除一些“星”并保留一些直流分量.显然这种方法不是最好的.

我正在阅读关于做一个高通滤波器,但是这似乎去除了傅里叶图像中的所有外部值.这是基于我以前的测试(我没有包括那些图像).

有什么建议您突出显示除DC分量以外的高强度值.理想情况下,我想让面具看起来像:

在另一个网站中,提到使用“高通和水平校正FFT数据仅保留代表光栅图案的杂散点”.我不清楚如何做到这一点.

您的帮助将不胜感激.

这是我的源代码来帮助:

I = imread('clown.jpg'); % Read Image

% convert to grayscale

I =

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值