有兴趣可以对下方的一些方法和参数进行更换,以达到更好的效果。
主要涉及到二值化,阈值,腐蚀,膨胀,反色等
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

这篇博客介绍了如何通过二值化、阈值处理、形态学操作、傅里叶变换等技术,对图像进行预处理和频域分析,以提升图像处理效果。关键步骤包括灰度转换、频域显示、噪声抑制和特定区域保留。
最低0.47元/天 解锁文章
2482





