码迷,mamicode.com
首页 > 其他好文 > 详细

opencv笔记(3)线性滤波、非线性滤波、图像深度、通道

时间:2016-07-13 19:46:33      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

15     遍历图像中的像素,是先for行数后for列数的,也就是一列一列的遍历,matlab中是从1开始计数,opnecv中采用c语言的从0开始计数。

         矩阵归一化:normalize()函数,参数挺多,不过大多都有默认值,不用都写出来,一般要求的图像归一化精简写法为 normalize(InputArray secImage , outputArray dstImage);一个输入,一个输出即可。

16     消除图像中的噪声成分叫做图像的平滑化或滤波操作,信号或图像的能量大部分集中在幅度谱的低频和中频段,而在较高频段,有用的信息经常被噪声淹没,因此一个能降低高频成分幅度的滤波器就能够减弱噪声的影响。Ps:滤波其实就是一个卷积的操作。

         三种线性滤波:方框滤波 boxblur函数 boxFilter(src,dst,-1,Size(3,3)); 其中-1表示输出图形采用原图像深度,即src.depth,图像深度表示存储每个像素所用的位数,也用于量度图像的色彩分辨率。Size(3,3)表示3*3的内核大小。boxFilter最少需要这四个参数,少其一都不行。其余参数有默认值一般不与考虑。

         均值滤波 blur函数,输出图像的每一个像素是核窗口内输入图像对应像素的平均值,其实就是归一化的方框滤波。 blur(src,dst,Size(3,3)); 主要是领域平均法,即某一点的像素是由除去该点的模板的其他点的平均值代替,故不能很好的保护图像细节,会造成图像变得模糊,不能很好的去除噪声点。

         和均值滤波相似的是高斯滤波,只不过高斯滤波不是简单的求其平均值,二是加权平均值。高斯滤波 是用一个模板扫描图像中的每一个像素,用模板确定的领域内的像素的加权平均灰度值去替代模板中心像素点的值,效果明显比均值滤波好了很多。Ps:理解高斯滤波概念,从数学的角度来看,图像的高斯滤波过程就是图像与正态分布做卷积,由于正态分布又叫做高斯分布,所以这项操作才叫做高斯滤波。

GussianBlur(src,dst,Size(5,7),sigmaX,sigmaY); 和前两种滤波不同的是,第三个表示内核大小的参数必须是正数和奇数,或者为0,还需设定高斯核函数在X和Y方向的标准偏差sigmaX、sigmaY。

17     两种非线性滤波器:中值滤波median filter 双边滤波 bilateral filter

图像处理的很多情况下,使用线性滤波更不到更好的效果,例如:噪声是散粒噪声而不是高斯噪声,即图像偶尔会出现很大的值的时候,用高斯滤波器进行模糊的话,噪声像素是不会被去除的,只是转换为更为柔和但仍然可见的颗粒。

中值滤波:基本思想是用像素点邻域灰度值的中值(中位数)来代替该像素点的灰度值,在去除脉冲噪声、椒盐噪声的同时能保留图像的边缘细节。中值滤波在一定条件下,能克服线性滤波器所带来的图像细节模糊。medianBlur(src,dst,ksize);其中ksize是孔径的线性尺寸,必须是大于1的奇数。

例如:medianBlur(image,out,7);

双边滤波是结合图像的空间邻近度和像素值相似度的一种折中处理,好处是可以做边缘保存。

bilateralFilter(src,dst,d,sigmaColor,sigmaSpace);d表示过滤过程中每个像素邻域的直径,sigmaColor颜色空间滤波器的sigma值,参数值越大,就表明该像素邻域内有越宽广的颜色会被混合在一起,产生较大的半相等颜色区域,sigmaSpace表示坐标空间中滤波器的sigma值,坐标空间的标注方差,数值越大,意味着越远的像素会相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色。

例如:bilateralFilter(image,out,25,25*2,25/2);

18     图像的深度:

图片是由一个个像素点构成的,所有不同颜色的像素点构成了一副完整的图像,计算机存储图片是以二进制来进行的。1bit:用一位来存储,那么这个像素点的取值范围就是0或者1,那么我们看来这幅图片要么是黑色要么是白色。4 bit : 取值范围为 0 到 2 的4次方8 bit : 来存储像素点的取值范围为 0 到 2 的8次方,以此类推,我们把计算机存储单个像素点所用到的bit为称之为图像的深度。bit表示位。

图像的通道:

我们都知道颜色的三元素 Red, Green, Blue. 如果是深度为24=3*8,我们刚好就可以用第一个8位存储Red值,第二个存储Green值,第三个存储Blue值, 2的8次方刚好是255,所以我们一般看到的RGB值都是(0-255,0-255,0-255)这样的值。如果用rgb来表示图片的颜色值,我们称这样的图片通道为三。

opencv笔记(3)线性滤波、非线性滤波、图像深度、通道

标签:

原文地址:http://www.cnblogs.com/ggYYa/p/5667407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!