通过本文主要向大家介绍了opencv2.4.3下载,opencv2.4.3,opencv2.4.3配置,opencv 2.4.3.exe,opencv 2.4.3.tar.bz2等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
原理
平滑也称模糊, 是一项简单且使用频率很高的图像处理方法。
平滑处理时需要用到一个滤波器。 最常用的滤波器是线性滤波器,线性滤波处理的输出像素值(例如:)是输入像素值(例如:
)的加权平均:
称为核, 它仅仅是一个加权系数。
均值平滑
下面是一个使用blur函数的均值平滑:
blur函数API资料:
使用归一化块滤波器进行模糊图片操作。
C++: void blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT )该函数对图片进行平滑处理利用了下面的内核:
调用blur(src, dst, ksize, anchor, borderType)相当于调用boxFilter(src, dst, src.type(), anchor, true, borderType)。
blur使用的是归一化块滤波器,输出像素值是核窗口内像素值的均值( 所有像素加权系数相等)。
高斯平滑
下面代码使用了GaussianBlur来实现平滑:
GaussianBlur函数API资料:
使用高斯滤波器进行模糊操作
C++: void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT)最有用的滤波器 (尽管不是最快的)。 高斯滤波是将输入数组的每一个像素点与高斯内核卷积将卷积和当作输出像素值。
参考一维高斯函数,我们可以看见,他是个中间大两边小的函数。
所以高斯滤波器其加权数是中间大,四周小的。
其二维高斯函数为:
其中 为均值 (峰值对应位置),
代表标准差 (变量
和 变量
各有一个均值,也各有一个标准差)。
中值平滑
使用medianBlur执行中值平滑:
medianBlur函数API资料:
使用中值滤波器进行模糊操作
C++: void medianBlur(InputArray src, OutputArray dst, int ksize)