如何在matlab中计算图像频谱,并实现增强频谱图中的较暗部分?
Matlab中可以使用函数fft2或fftn将图像转换为频域。计算图像的频谱并绘制频谱图代码如下:
% 读入图像
I = imread('image.jpg');
% 将图像转换为灰度图
I = rgb2gray(I);
% 计算图像的频谱
F = fft2(I);
% 对频谱取绝对值,并取对数
F = log(abs(F));
% 绘制频谱图
imshow(F, []);
要增强频谱图中的较暗部分,可以用直方图均衡化等方法对频谱图进行增强,代码实现如下:
% 读入图像
I = imread('image.jpg');
% 将图像转换为灰度图
I = rgb2gray(I);
% 计算图像的频谱
F = fft2(I);
% 对频谱取绝对值,并取对数
F = log(abs(F));
% 使用直方图均衡化增强频谱图
F = histeq(F);
% 绘制频谱图
imshow(F, []);