matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。

目录

 

一.原理简介

二.现有方法

三.代码实现

四.测试结果图


一.原理简介

主要思路为:通过傅里叶变换,将图像显示在频率域中,通过观察频谱图,如果了解频谱图与原图之间的关联,可以较为容易地发现噪声在频谱图中的表现,如下图:

第一张为原图,图中有较为规律的网纹(莫尔模式),图像在频率域中的频谱图如上方右图所示,可以发现其中包含八个较为明显的亮点,这些亮点在原图中就是网格。

二.现有方法

如果去掉这些亮斑,如下方左图所示,表现在原图中,就去掉了网格,如右下角图所示。

如果从较专业图像处理的角度,可以如下方法:(前两种网上和《数字图像处理》书中较多实现。本文第三种)

1.对频谱图设置一个阈值二值化进行阈值分割,然后通过膨胀腐蚀等操作找到这些亮斑(代码点此)

2.巴特沃斯陷波带阻滤波器传递函数乘以傅里叶变换的结果(左下图)(参见数字图像处理207页)

3.手动圈选特定位置,将选定位置的值设置为频谱图中的最小值,(代码如下)

三.代码实现

非常重要:使用时,通过鼠标选择mask区域,选好一个mask后,按下esc键会进行选下一个。当所有的mask选完时,在第一个图上按esc,再在画mask的图上按esc,程序就往下执行,生成结果图。(欢迎有兴趣的小伙伴改进操作方法)

matlab实现,主要功能为对于图像出现的有规律的网格,网纹,线条状噪声进行移除。

I = imread('test.png'); 
I = rgb2gray(I);
totMask = zeros(size(I)); % accumulate all single object masks to this one 
f = figure('CurrentCharacter','a'); 
imshow(I) 

FFT = fft2(I);
myangle = angle(FFT);             %相位谱(没有进行移位的)
FS = abs(fftshift(FFT));          % 移位,使低频成分集中到图像中心,并得到幅度谱
S = log(1+abs(FS));
figure,imshow(S,[]);

small=min(min(FS))
h = imfreehand(gca); setColor(h,'green'); 
position = wait(h); 
BW = createMask(h); 
totMask = totMask | BW; % add mask to global mask 
while double(get(f,'CurrentCharacter'))~=27 
    % ask user for another mask 
    h = imfreehand(gca); 
    if isempty(h) 
     % User pressed ESC, or something else went wrong 
     continue 
    end 
    setColor(h,'green'); 
    position = wait(h); 
    BW = createMask(h); 
    totMask = totMask | BW; % add mask to global mask 
    pause(.1) 
end 
% show the resulting mask 
figure; imshow(totMask); title('multi-object mask'); 

cost3 = FS;
cost3(totMask == 1) = small ;
FS = cost3;


resul_s  = ifftshift(FS);               % 将处理后的幅度图反移位,恢复到正常状态
result_f = resul_s.*cos(myangle) + resul_s.*sin(myangle).*1i;      % 幅度值和相位值重新进行结合,得到复数
result_image = abs(ifft2(result_f ));               % 进行傅里叶反变换,得到处理后的时域图像
result = im2uint8(mat2gray(result_image));       
figure,imshow(result);       %去除网纹成分后的图像

四.测试图

原图:

圈住目标信号:

生成的mask:

结果图:

本文链接:matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。_Alocus_的博客-CSDN博客

  • 11
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值