读入一幅图像,对图像分别进行高斯低通、巴特沃兹低通、高斯高通和巴特沃兹高通频域滤波,比较其锐化和平滑效果。
↵
1、高斯低通
二维高斯低通滤波器定义如下:
D0为截止频率与原点的距离,D(u,v)是点(u,v)与原点的距离。
图像表示:
读入图片并得到频谱图,后续搭建高斯低通滤波器如下。
[m,n]=size(image_fft_shift);%获得图像的高度和宽度
H_Gassian_low_pass_filter=zeros(m,n);%滤波器函数
a0=m/2;%图像中心点
b0=n/2;
D0=10;%截至频率距离圆点的距离
delta=D0;%delta表示高斯曲线的扩散程度
for x=1:mfor y=1:n d=(x-a0)^2+(y-b0)^2;%计算点(x,y)到中心点的距离%计算高斯滤波器
H_Gassian_low_pass_filter(x,y)=exp(-d/(2*delta^2)); end
end
%滤波后结果
image_res=H_Gassian_low_pass_filter.*image_fft_shift;
image_new=uint8(real(ifft2(ifftshift(image_res))));
subplot(2,2,3),imshow(image_new);
title('高斯低通滤波所得图像');
subplot(2,2,4),imshow(H_Gassian_low_pass_filter);
title("高斯低通滤波器图象");
测试结果如图所示。
图6.1 对图像进行高斯低通滤波测试结果(D0=10)
图6.1 对图像进行高斯低通滤波测试结果(D0=20)
图6.1 对图像进行高斯低通滤波测试结果(D0=40)
2、巴特沃兹低通
n阶巴特沃兹低通滤波器定义如下:
D0为截止频率与原点的距离,D(u,v)是点(u,v)与原点的距离.
图像表示:
特点:
- 不同于理想低通滤波器,BLPF在通带与被滤除的频率之间没有明显的截断
- 当D(u,v)=D0时,H(u,v)=0.5;当D(u,v)=0时,滤波器取最大值1
- 巴特沃兹滤波器阶数越高,越趋近于理想低通滤波器
读入图片并得到频谱图一,后续搭建巴特沃兹低通滤波器如下。
[m,n]=size(image_fft_shift);%获得图像的高度和宽度
H_Butterworth_low_pass_fliter=zeros(m,n);%滤波器函数
a0=m/2; b0=n/2; %图像中心点
D_Butterworth_low_pass=40;
N_Butterworth_low_pass=1; %巴特沃兹滤波器的阶数
for x=1:mfor y=1:ndistance=sqrt((x-a0)^2+(y-b0)^2);H_Butterworth_low_pass_fliter(x,y)=1/(1+(distance/D_Butterworth_low_pass)^(2*N_Butterworth_low_pass));end
end
image_res_Butterworth_low_pass=H_Butterworth_low_pass_fliter.*image_fft_shift;
image_new_Butterworth_low_pass=uint8(real(ifft2(ifftshift(image_res_Butterworth_low_pass))));
subplot(2,2,3),imshow(image_new_Butterworth_low_pass);
title('巴特沃兹低通滤波所得图像');
subplot(2,2,4),imshow(H_Butterworth_low_pass_fliter);
title("巴特沃兹低通滤波器图象");
3、高斯高通
二维高斯高通滤波器定义如下:
D0为截止频率距原点的距离,D(u,v)是点(u,v)距原点的距离。
图象表示:
读入图片并得到频谱图,后续搭建高斯高通滤波器如下,与高斯低通滤波器类似,只是H(u,v)发生了变化。
[m,n]=size(image_fft_shift);%获得图像的高度和宽度
H_Gassian_high_pass_filter=zeros(m,n);%滤波器函数
%图像中心点
a0=m/2; b0=n/2;
D_gassian_high_pass=10;%截至频率距离圆点的距离
delta_gassian_high_pass=D_gassian_high_pass;%delta表示高斯曲线的扩散程度
for x=1:mfor y=1:nd=(x-a0)^2+(y-b0)^2; %计算点(x,y)到中心点的距离%计算高斯滤波器H_Gassian_high_pass_filter(x,y)=1-exp(-d/(2*delta_gas sian_ high_pass^2));end
end
%滤波后结果
image_res_gassian_high_pass=H_Gassian_high_pass_filter.*image_fft_shift;
image_new_gassian_high_pass=uint8(real(ifft2(ifftshift(image_res_gassian_high_pass))));
subplot(2,2,3),imshow(image_new_gassian_high_pass);
title('高斯高通滤波所得图像');
subplot(2,2,4),imshow(H_Gassian_high_pass_filter);
title("高斯高通滤波器图象");
4、巴特沃兹高通
n阶巴特沃兹高通滤波器定义如下
D0为截止频率距原点的距离,D(u,v)是点(u,v)距原点的距离。
图像表示:
读入图片并得到频谱图,后续搭建巴特沃兹高通滤波器如下,过程与巴特沃兹低通滤波器类似,只是函数发生了变化。
[m,n]=size(image_fft_shift);%获得图像的高度和宽度
H_Butterworth_high_pass_filter=zeros(m,n);%滤波器函数
a0=m/2;
b0=n/2;%图像中心点
D_Butterworth_high_pass=40;
N_Butterworth_high_pass=10;%巴特沃斯滤波器的阶数
for x=1:mfor y=1:ndistance=sqrt((x-a0)^2+(y-b0)^2);H_Butterworth_high_pass_fliter(x,y)=1/(1+(D_Butterworth_high_pass/distance)^(2*N_Butterworth_high_pass));end
end
%滤波后结果
image_res_Butterworth_high_pass=H_Butterworth_high_pass_fliter.*image_fft_shift;
image_new_Butterworth_high_pass=uint8(real(ifft2(ifftshift(image_res_Butterworth_high_pass))));
subplot(2,2,3),imshow(image_new_Butterworth_high_pass);
title('巴特沃兹高通滤波所得图像');
subplot(2,2,4),imshow(H_Butterworth_high_pass_fliter);
title("巴特沃兹高通滤波器图象");
5、四种滤波比较
总的来说,低通滤波器可以起到平滑作用,高通滤波器可以起到锐化作用。通过观察测试结果可以进一步得出下列结论。
滤波器 |
性能比较 |
高斯低通滤波器 |
随着截止频率的增大,平滑效果越来越弱;平滑效果稍差于相同截止频率的二阶巴特沃兹低通滤波器;过渡特性非常平坦,没有出现振铃现象。 |
巴特沃兹低通滤波器 |
随着滤波器半径(截止频率)的增大,平滑效果越来越弱;随着阶数增加,越来越趋近于理想低通滤波器;低阶滤波器没有明显振铃现象(滤波器在低频和高频之间平滑过渡),阶数越高,滤波器的过度越剧烈,振铃现象将越明显。 |
高斯高通滤波器 |
高斯高通滤波的结果比巴特沃兹高通滤波的结果更尖锐,即使是对微小物体和细线条的滤波也是较清晰的。 |
巴特沃兹高通滤波器 |
巴特沃兹高通滤波的结果比高斯高通滤波的结果平滑一些。 |
很高兴您能看到这里,文中提到的一些函数如果有不懂可以留言也可以在matlab支持(支持 - MATLAB & Simulink (mathworks.cn))里去查询。希望本文对您学习有所帮助!
读入一幅图像,对图像分别进行高斯低通、巴特沃兹低通、高斯高通和巴特沃兹高通频域滤波,比较其锐化和平滑效果。相关推荐
- matlab频域滤波处理,手动滤波,图像去网格背景:频域中手动选择目标区域进行滤波,滤掉噪声,灵活地达到理想的效果。
目录 一.原理简介 二.现有方法 三.代码实现 四.测试结果图 一.原理简介 主要思路为:通过傅里叶变换,将图像显示在频率域中,通过观察频谱图,如果了解频谱图与原图之间的关联,可以较为容易地发现噪声在 ...
- 21.失真/低高通/振铃效应/旁瓣泄漏效应/频域滤波/图像深度/频带/线性滤波源码分析 -- OpenCV从零开始到图像(人脸 + 物体)识别系列
本文作者:小嗷 微信公众号:aoxiaoji 吹比QQ群:736854977 简书链接:https://www.jianshu.com/u/45da1fbce7d0 本文你会找到以下问题的答案: 失真 ...
- 如何将图像保存至计算机G7X,opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作...
本文使用的函数: cv2.imread()读入一幅图像cv2.imshow()显示一幅图像cv2.imwrite()写入一幅图像 读入图像 cv2.imread(参数1,参数2) 第一个参数是要读取图 ...
- OpenCV与图像处理学习一——图像基础知识、读入、显示、保存图像、灰度转化、通道分离与合并
OpenCV与图像处理学习一--图像基础知识.读入.显示.保存图像.灰度转化.通道分离与合并 一.图像基础知识 1.1 数字图像的概念 1.2 数字图像的应用 1.3 OpenCV介绍 二.图像属性 ...
- 《OpenCV3编程入门》学习笔记5 Core组件进阶(二) ROI区域图像叠加图像混合
第5章 Core组件进阶 5.2 ROI区域图像叠加&图像混合 5.2.1 感兴趣区域ROI(region of interest) 1.定义ROI区域两种方法: (1)定义矩形区域Rect: ...
- Python计算机视觉——图像到图像的映射
Python计算机视觉--图像到图像的映射 文章目录 Python计算机视觉--图像到图像的映射 写在前面 1 单应性变换 1.1 直接线性变换算法 1.2 仿射变换 2 图像扭曲 2.1 图像中的图 ...
- C语言数字图像处理---2.5图像频域滤波
上一小节我们介绍了图像频域变换,本小节将以此为基础,介绍图像频域滤波的相关内容,包含常见高通/低通/带通/带阻/方向滤波等频域滤波方法,同时以C语言编码实现,帮助初学者理解和掌握如何进行图像的频域滤波 ...
- 飞浆论文复现:用于图像到图像翻译的具有自适应层实例化的非监督的生成对抗网络
Unsupervised generative attentional networks with adaptive layer-instance normalization for image-to ...
- python计算机视觉学习第三章——图像到图像的映射
目录 引言 一. 单应性变换 1.1 直接线性变换算法 1.2 仿射变换 二. 图像扭曲 2.1 图像中的图像 2.2 分段仿射扭曲 2.2 图像配准 三.创建全景图 3.1 RANSAC(随机一致性 ...
最新文章
- 2019,不可错过的NLP“高光时刻”
- mpvue开发小程序分享朋友圈无法自定义标题解决方法
- java aio聊天_JAVA aio简单使用
- python做自动化控制postman_使用postman+newman+python做接口自动化测试
- [html] 说说你对移动优先布局的理解
- __attribute__ 之weak,alias属性
- python数据结构与算法13_python3数据结构与算法
- pythonos模块_python的io模块和os模块有什么区别
- 光电经典好书:《光电系统设计基础》-吴晗平
- Python+Spark大数据音乐推荐系统
- pytorch提取softmax前的特征并保存为txt文件
- [VGG16]——网络结构介绍及搭建(PyTorch)
- Vayo-CAM365功能详解(二)
- 理解Celery的worker
- 【软件测试】测试人,我们35岁焦虑怎样破?
- jk女孩被人偷拍知名企业代码泄露, 原来是属性注解模式(Attribute Annotation Pattern)兴风作浪
- python输入十个数字的成语_【一到十十个数字开头的成语】作业帮
- 不允许sam账户和共享的匿名枚举_不允许SAM 帐户匿名枚举是什么意思?
- Systemback更改默认存储目录/home,并在Ubuntu18创建大于4G的Linux镜像教程
- HttpClient设置HTTP请求头Header