利用理想低通滤波器对图像进行锐化处理的MATLAB代码
时间: 2023-09-09 08:07:59 浏览: 110
以下是利用理想低通滤波器对图像进行锐化处理的MATLAB代码示例:
```matlab
% 读取图像
img = imread('lena.png');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 构造理想低通滤波器
D0 = 30; % 截止频率
[M, N] = size(img_gray);
u = 0:M-1;
v = 0:N-1;
idx = find(u > M/2);
u(idx) = u(idx) - M;
idy = find(v > N/2);
v(idy) = v(idy) - N;
[V, U] = meshgrid(v, u);
D = sqrt(U.^2 + V.^2); % 频率域中心距离
H = double(D <= D0); % 理想低通滤波器
% 傅里叶变换
F = fftshift(fft2(double(img_gray)));
% 频域滤波
G = H .* F;
% 傅里叶反变换
g = real(ifft2(ifftshift(G)));
% 对比原图像和处理后的图像
figure;
subplot(1, 2, 1);
imshow(img_gray);
title('原图像');
subplot(1, 2, 2);
imshow(g, []);
title('锐化处理后的图像');
```
在上述代码中,我们首先读取了一个彩色图像,并将其转换为灰度图像。然后,我们构造了一个理想低通滤波器,并根据该滤波器计算出频域中心的距离D。接着,我们对原始图像进行傅里叶变换,然后将其与理想低通滤波器H相乘,得到锐化处理后的频域图像G。最后,我们对G进行傅里叶反变换,得到锐化处理后的图像g,并将其与原始图像进行对比。
阅读全文