OpenCv中几种常见的滤波器
一. 滤波器的作用
1. 问题:数字图像信号的频率分布?
回答:信号或者图像的能量大部分在中低频段,少部分有用信号在高频段被噪声淹没(噪声都是高频信号)。因此设计滤波器能降低高频成分幅度就能减弱噪声影响。 2.问题:为什么要进行图像滤波?
回答:1.适应图像处理要求,消除图像数字化时所混入的噪声。 2.提取对象的特征作为图像识别的特征模式(没遇到过!) 3.问题:如何理解滤波器?
回答:把滤波器想象成一个包含加权系数的窗口,当使用滤波器平滑处理图像时,相当于把窗口放到图像上,透过窗口看图像。 4.问题:滤波器实现的结果是怎么样的? 回答:对图像做平滑或滤波后图像变得更模糊。 二. 滤波器分类
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_DEFAULT)
参数说明: 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 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类型boderType,推断图像外部像素的某种边界模式。默认值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类型的sigmaX,表示高斯核函数在X方向上的标准偏差。
Double类型的sigmaY,表示高斯核函数在Y方向上的标准偏差, sigmaY有默认值为0.如果sigmaX和sigmaY都为0,由内核的宽高计算出来。
Int类型boderType,推断图像外部像素的某种边界模式。默认值BORDER_DEFAULT。
4. 补充:boxblur函数中的参数normalize,当normalize=true时为均
值滤波。言外之意,均值滤波是方框滤波归一化后的特殊情况。 2.1.2 线性滤波器的计算方法
图注:邻域滤波(卷积):左边图像与中间图像的卷积产生右边图像。目标图像中蓝色标记的像素是利用原图像中红色标记的像素计算得到的。
线性滤波处理的输出像素值
的加权和 :
是输入像素值
其中的加权和为 ,我们称其为“核”,滤波器的加权系数,即滤波器的“滤波系数”。
上面的式子可以简单写作:
其中f表示输入像素值,h表示加权系数“核“,g表示输出像素值。
举例说明:
对待处理的当前像素,选择一个内核大小,该内核为其邻近的若干个像素组成,用内核的均值来替代原像素的值的方法。
取出图像中的几个像素点,并标注需要处理的像素点F(X,Y) 1 4 6 2 F(X,Y) 7 3 5 8 图注:1~8为(x,y)的邻近像素
设置内核大小
通过均值滤波器后其计算为: 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))/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) 通过高斯滤波器利用公式:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库opencv几种常见滤波器使用方法在线全文阅读。
相关推荐: