版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、opencv 中几种常见的滤波器一. 滤波器的作用1. 问题:数字图像信号的频率分布?低高频成分幅度就能减弱噪声影响。回答:信号或者图像的能量大部分在中低频段,少部分有用信号在高频段被噪声沉没(噪声都是高频信号)。因此设计滤波器能降2. 问题:为什么要进行图像滤波?回答:1.适应图像处理要求,消退图像数字化时所混入的噪声。2. 提取对象的特征作为图像识别的特征模式(没遇到过!)3. 问题:如何理解滤波器?回答:把滤波器想象成一个包含加权系数的窗口,当使用滤波器平滑处理图像时,相当于把窗口放到图像上,透过窗口看图像。4. 问题:滤波器实现的结果是怎么样的?回答:对图像做平滑或滤波后图像变得更模糊
2、。二 滤波器分类2.1 线性滤波器1. 低通滤波器:允许低频率通过2. 高通滤波器:允许高频率通过3. 带通滤波器:允许肯定范围频率通过4. 带阻滤波器:阻挡肯定范围频率通过5. 全通滤波器:允许全部频率通过,只是转变相位2.1.1 opencv 中供应的线性滤波函数1. 方框滤波:boxfilter 函数函数原型:void boxfilter (inputarray src,outputarray dst,int ddepth,size ksize,pointanchor=point(-1,-1),boolnormalize=true,int bordertype=border_defaul
3、t)参数说明: inputarray,输入图像 src。outputarray ,输出图像 dst。int 类型 ddepth,输出图像深度,-1 代表使用原图 src 深度。size 类型 ksize,内核大小,一般用 size(w,h),w 为宽度,h 为深度。point 类型 anchor,被平滑的点,表示取内核中心,默认值 point(-1,-1)。bool 类型 normalize,标识符,表示内核是否被归一化。默认值为 true。int 类型 bodertype,推断图像外部像素的某种边界模式。默认值 border_default。2. 均值滤波:blur 函数函数原型:void
4、blur(inputarray src,outputarray dst,int ddepth,size ksize,pointanchor=point(-1,-1), int bordertype=border_default)参数说明:inputarray,输入图像 src。outputarray ,输出图像 dst。int 类型 ddepth,输出图像深度,-1 代表使用原图 src 深度。size 类型 ksize,内核大小,一般用 size(w,h),w 为宽度,h 为深度。point 类型 anchor,被平滑的点,表示取内核中心,默认值 point(-1,-1)。int 类型 bo
5、dertype,推断图像外部像素的某种边界模式。默认值 border_default。3. 高斯滤波:gaussianblur 函数函数原型: void gaussianblur(inputarray src,outputarray dst, size ksize,double sigmax,double sigmay=0,int bordertype=border_default)参数说明:inputarray,输入图像 src。outputarray ,输出图像 dst.size 类型 ksize,内核大小,一般用 size(w,h),w 为宽度,h 为深度。double 类型的 sigm
6、ax,表示高斯核函数在 x 方向上的标准偏差。double 类型的 sigmay,表示高斯核函数在 y 方向上的标准偏差, sigmay 有默认值为 0.假如 sigmax 和 sigmay 都为 0, 由内核的宽高计算出来。int 类型 bodertype,推断图像外部像素的某种边界模式。默认值 border_default。4. 补充:boxblur 函数中的参数 normalize,当 normalize=true 时为均值滤波。言外之意,均值滤波是方框滤波归一化后的特别状况。2.1.2 线性滤波器的计算方法图注:邻域滤波(卷积):左边图像与中间图像的卷积产生右边图像。目标图像中蓝色标记
7、的像素是利用原图像中红色标记的像素计算得到的。线 性 滤 波 处 理 的 输 出 像 素 值 的加权和 :是 输 入 像 素 值其中的加权和为 ,我们称其为“核”,滤波器的加权系数,即滤波器的“滤波系数”。上面的式子可以简洁写作:举例说明:其中f 表示输入像素值,h 表示加权系数“核“,g 表示输出像素值。对待处理的当前像素,选择一个内核大小,该内核为其邻近的若干个像素组成,用内核的均值来替代原像素的值的方法。取出图像中的几个像素点,并标注需要处理的像素点 f(x,y)1234f(x,y)5678图注:18 为(x,y)的邻近像素设置内核大小通过均值滤波器后其计算为:f(x,y)=(f(x-1
8、,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x,y) + f(x+1,y) + f(x-1,y+1) + f(x,y+1) + f(x+1,y+1)/9设置内核大小通过方框滤波器后其计算为:f(x,y)=f(x-1,y-1) + f(x,y-1)+ f(x+1,y-1) + f(x-1,y) + f(x,y) + f(x+1,y) + f(x-1,y+ 1) + f(x,y+1) + f(x+1,y+1)通过高斯滤波器利用公式:代入x,y 值可以算出f(x,y)的值。2.2 非线性滤波器1. 中值滤波:像素点 邻域灰度值的中值代替该像素点的灰度值。2
9、. 双边滤波:基于空间分布的高斯滤波函数,比高斯滤波多一个sigma-d 的高斯方差。2.2.1 opencv 中供应的非线性滤波函数1. 中值滤波:medianblur 函数函数原型:void medianblur(inputarray src,outputarray dst,int ksize)参数说明:inputarray,输入图像 src。outputarray ,输出图像 类型 ksize,孔径的线性尺寸,这个参数必需是大于1 的奇数2. 双边滤波: bilateralfilter(inputarray src,outputarray dst, int d, doub
10、le sigmacolor,double sigmaspace,int bordertype=border_default)参数说明:inputarray,输入图像 src。outputarray ,输出图像 dst.int 类型的 d,表示过滤过程每个像素邻域的直径double 类型的 sigmacolor,表示颜色滤波器的 sigma 值double 类型的 sigmaspace,表示坐标空间的 sigma 值int 类型 bodertype,推断图像外部像素的某种边界模式。默认值 border_default。)三 几种滤波器的使用本示例在 opencv3.0+vs2012 运行环境下测
11、试,不管利用 opencv 或者 vs 什么版本其实程序都是一样的。只不过在包含头文件时留意位置就好了。#include<opencv2/opencv.hpp>using namespace cv;using namespace std;#define windows_name1 “【原图】“ #define windows_name2 “【方框滤波】“ #define windows_name3 “【均值滤波】“#define windows_name4 “【高斯滤波】“#define windows_name5 “【中值滤波】“#define windows_name6 “【双
12、边滤波】“int main()system(“color 5e“);/把dos框背景颜色转变,只是看看效果,默认dos框背景为黑色。mat srcimage=imread(“d:programfiles图片example4.jpg“);/读入原图if (!srcimage.data)cout<<“读取srcimage错误!“<<endl;/用到了输入输出流,头文件要加“using namespace std;”return false;mat box_image=srcimage.clone();/创建5个mat矩阵用来存放滤波数据,利用clone函数使其大 小和原图大
13、小相同 mat blur_image=srcimage.clone();mat gaussian_image=srcimage.clone(); mat median_image=srcimage.clone(); mat bilateral_image=srcimage.clone();/=显示原图=namedwindow(windows_name1,1);imshow(windows_name1,srcimage);/=方框滤波= namedwindow(windows_name2,1); boxfilter(srcimage,box_image,-1,size(3,3),point(-1
14、,-1),false,border_default);imshow(windows_name2,box_image);/=均值滤波= namedwindow(windows_name3,1);blur(srcimage,blur_image,size(3,3),point(-1,-1),border_default);imshow(windows_name3,blur_image);/=高斯滤波=namedwindow(windows_name4,1);imshow(windows_name4,gaussian_image);/=中值滤波=gaussianblur(srcimage,gaussian_image,size(3,3),0,0,borde r_default);namedwindow(windows_name5,1); medianblur(srci
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于画布理论模型的D航江西分公司商业模式优化研究
- 2025年度成都纺织高等专科学校校企合作人才培养协议4篇
- 基于企业行为的广义灰色DEA方法拓展研究
- 电感式火花放电气溶胶发生器的研制
- 2025年度轮胎行业数据共享与分析合同8篇
- 二零二五年度智能化博物馆陈列馆设计与施工合作协议3篇
- 冲刺卷数学试卷
- 二零二五年度文化产业园区代理记账报税合作协议3篇
- 2025版土地使用权出让居间合同规范文本-现代农业项目3篇
- 五年级数学(小数乘法)计算题专项练习及答案
- 2024年国家公务员考试公共基础知识复习题库及答案(共三套)
- 《社会工作实务》全册配套完整课件3
- 单位违反会风会书检讨书
- 2024年4月自考00832英语词汇学试题
- 《电力用直流电源系统蓄电池组远程充放电技术规范》
- 《哪吒之魔童降世》中的哪吒形象分析
- 信息化运维服务信息化运维方案
- 汽车修理厂员工守则
- 公安交通管理行政处罚决定书式样
- 10.《运动技能学习与控制》李强
- 1神经外科分级护理制度
评论
0/150
提交评论