matlab实现图像增强频域
时间: 2024-05-22 14:08:35 浏览: 133
基于MATLAB的图像频域增强处理
在Matlab中,可以通过傅里叶变换来实现图像的频域增强。具体步骤如下:
1. 读取图像并转换为灰度图像;
2. 对图像进行二维离散傅里叶变换(DFT);
3. 对变换后的频域图像进行增强处理,可以使用滤波器、频率域滤波、对数变换等方法;
4. 对增强后的频域图像进行反变换,得到增强后的图像。
下面以频域滤波为例,介绍一下具体的实现方法:
1. 读取图像并转换为灰度图像:
```matlab
img = imread('example.jpg');
gray_img = rgb2gray(img);
```
2. 对图像进行二维离散傅里叶变换(DFT):
```matlab
f = fft2(double(gray_img));
```
3. 对变换后的频域图像进行增强处理,可以使用滤波器、频率域滤波、对数变换等方法。这里以高斯滤波为例:
```matlab
[M, N] = size(gray_img);
sigma = 5;
[X, Y] = meshgrid(1:N, 1:M);
centerX = ceil(N/2);
centerY = ceil(M/2);
gaussianFilter = exp(-((X-centerX).^2 + (Y-centerY).^2)/(2*sigma^2));
f_filtered = f .* fftshift(gaussianFilter);
```
4. 对增强后的频域图像进行反变换,得到增强后的图像:
```matlab
enhanced_img = real(ifft2(f_filtered));
```
阅读全文