用matlab任选一张图实现:频域高通滤波后的效果图
时间: 2023-12-30 10:06:04 浏览: 36
好的,我可以给您提供一些关于 Matlab 中频域高通滤波的代码示例,您可以自行尝试实现。以下是一个示例:
```matlab
% 读入图像
img = imread('your_image.jpg');
% 转为灰度图像
gray_img = rgb2gray(img);
% 将灰度图像转为 double 类型
img_double = im2double(gray_img);
% 对图像进行傅里叶变换
F = fft2(img_double);
% 将零频分量移到频谱的中心
F = fftshift(F);
% 高通滤波器的截止频率
D0 = 30;
% 构造高通滤波器
[M, N] = size(gray_img);
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 = 1 - exp(-(D.^2)./(2*(D0^2)));
% 将滤波器应用到频谱上
G = H .* F;
% 将零频分量移回原位
G = ifftshift(G);
% 对图像进行傅里叶反变换
f_img = real(ifft2(G));
% 显示原图和滤波后的图像
figure;
subplot(1, 2, 1);
imshow(gray_img);
title('原图');
subplot(1, 2, 2);
imshow(f_img);
title('高通滤波后的图像');
```
您可以将代码中的 `your_image.jpg` 替换为您选择的图片路径,然后运行代码即可看到高通滤波后的效果图。需要注意的是,这是一个简单的示例,您可能需要根据具体情况进行参数的调整。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)