频域增强matlab
时间: 2023-11-06 08:57:59 浏览: 95
频域增强是一种在频域上操作图像以增强图像质量的方法。在MATLAB中,可以通过傅里叶变换和滤波来实现频域增强。
以下是一种简单的频域增强方法的示例代码:
```matlab
% 读取图像
img = imread('image.jpg');
% 将图像转换为灰度图
gray_img = rgb2gray(img);
% 对图像进行傅里叶变换
fft_img = fft2(double(gray_img));
% 将零频率成分移动到频谱的中心
shifted_fft_img = fftshift(fft_img);
% 定义一个高通滤波器
mask = ones(size(shifted_fft_img));
[m, n] = size(mask);
center_x = floor(m/2) + 1;
center_y = floor(n/2) + 1;
radius = 30;
mask(center_x-radius:center_x+radius, center_y-radius:center_y+radius) = 0;
% 对频谱进行滤波
filtered_fft_img = shifted_fft_img .* mask;
% 将滤波后的频谱移回原来的位置
shifted_back_fft_img = ifftshift(filtered_fft_img);
% 对滤波后的频谱进行反傅里叶变换
enhanced_img = real(ifft2(shifted_back_fft_img));
% 将图像转换为uint8并进行显示
enhanced_img = uint8(enhanced_img);
imshow(enhanced_img);
```
这段代码首先读取一张彩色图像,并将其转换为灰度图像。然后,对灰度图像进行傅里叶变换,将零频率成分移动到频谱的中心。接下来,定义一个高通滤波器,将滤波器应用于频谱。最后,将滤波后的频谱移回原来的位置,并进行反傅里叶变换得到增强后的图像。