matlab中使用阈值二值化,腐蚀,膨胀,反色等操作进行图像处理,去噪声,网纹、摩尔纹等

有兴趣可以对下方的一些方法和参数进行更换,以达到更好的效果。

主要涉及到二值化,阈值,腐蚀,膨胀,反色等

clc;    
close all;  
clear;  
workspace;  
fontSize = 14;
grayImage = imread('test.jpg');
[rows, columns, numberOfColorBands] = size(grayImage);
if numberOfColorBands > 1  % 如果是彩色图像则转为灰度图像
	grayImage = rgb2gray(grayImage);
end
figure,imshow(grayImage, []);
title('原始灰度图像');
frequencyImage = fftshift(fft2(grayImage));  % 得到频域图
myangle = angle(fft2(grayImage));  % 后续傅里叶反变换使用
amplitudeImage = log(1 + abs(frequencyImage));  % 在FFT变换之后把浮点数据进行对数变化,线性映射到0~255范围内,压缩数据
frequencyImage = abs(frequencyImage);
figure,imshow(amplitudeImage, [])
title('傅里叶变换得到的频域图像');
amplitudeThreshold = 9.2;  % 阈值分割的阈值
brightSpikes = amplitudeImage > amplitudeThreshold; % 二值图像
figure,imshow(brightSpikes);
title('频域图像阈值分割');
se=strel('disk',1');% 圆盘型结构元素  
fc=imclose(brightSpikes,se);  % 形态学闭操作等效于先膨胀再腐蚀
figure,imshow(fc);
title('频域图像阈值分割后膨胀腐蚀');
I_reverse = imcomplement(fc); % 反色
figure,imshow(I_reverse);
title('反色');
I_reverse(275:310, 190:235) = 1;  % 保留中心区域
figure,imshow(I_reverse);  
title('保留中心区域');
median_filter=medfilt2(I_reverse,[3,3]);  %进行3*3模板中值滤波,前面的处理可能会带来新条纹
figure,imshow(median_filter);
title('中值滤波');
mask = imcomplement(median_filter);
frequencyImage(mask) = 0;
amplitudeImage2 = log(abs(frequencyImage));
figure,imshow(amplitudeImage2, []);
title('新的频谱图');
aaa = ifftshift(frequencyImage);               % 将处理后的幅度图反移位,恢复到正常状态
bbb = aaa.*cos(myangle) + aaa.*sin(myangle).*1i;      % 幅度值和相位值重新进行结合,得到复数
fr = abs(ifft2(bbb));               % 进行傅里叶反变换,得到处理后的时域图像
ret = im2uint8(mat2gray(fr));       
figure,imshow(ret);       %滤波后的图像
title('傅里叶反变换还原图像');

本文地址:https://mp.csdn.net/editor/html/117331965

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Alocus_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值