1、cvSmooth函数用法
定义原型
<span style="font-size:12px;"> void cvSmooth( const CvArr* src, CvArr* dst,int smoothtype=CV_GAUSSIAN,int param1, int param2, double param3, double param4 );</span>
src:输入图像.dst:输出图像.
smoothtype平滑方法:
CV_BLUR_NO_SCALE(简单不带尺度变换的模糊)-对每个象素的 param1×param2 领域求和。如果邻域大小是变化的,可以事先利用函数 cvIntegral 计算积分图像. 但是该选项没有计算平均值的操作,所以比 CV_BLUR 的运算快,但是容易溢出,因此输入输出图像必须有不同的数值精度,才能保证不会溢出。 不缩放比例的simple blur 支持8位的图像输入,但是结果必须是 IPL_DEPTH_16S(CV_16S) 或者 IPL_DEPTH_32S(CV_32S) 简单无缩放的滤波不适合 IN_PLACE 方式:因为输入与输出类型必须不同。
CV_GAUSSIAN(gaussian blur) - -对图像进行核大小为 param1×param2 的高斯卷积。
CV_MEDIAN(median blur) - -对图像进行核大小为param1×param1 的中值滤波 (邻域是方的)。
CV_BILATERAL(双向滤波) - -应用双向 3x3 滤波,彩色 sigma=param1,空间 sigma=param2.。
关于双向滤波,可参考http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html。
param1 平滑操作的第一个参数.
param2 平滑操作的第二个参数. 对于简单/非尺度变换的高斯模糊的情况,如果param2的值为零,则表示其被设定为param1。
param3