一.分类与作用
a>线性滤波:
1.方框滤波:模糊图像
2.均值滤波:模糊图像
3.高斯滤波:信号的平滑处理,去除符合正太分布的噪声
b>非线性滤波
1.中值滤波:去除椒盐噪声
2.双边滤波:保边去噪
二.OpenCv中的函数调用
1.方框滤波:
API:void boxFilter(源图像,目的图像,int 输出图像的深度,Size 邻域算子的大小,Point 锚点,bool 归一化标志,int 边界模式)
说明:1.源图像可以是彩色图或者是灰度图,因为图像处理的时候,通道是分开来处理的
2.目的图像的大小和通道数必须和源图像相同,另外,目的图像的深度由后一个参 数决定
3.输出图像的深度,指定CV_8U....,当为-1的时候,目标图像的深度和源图像的深度相同
4.锚点,指被平滑的那个点位于领域算子矩阵的哪一个位置,从而确定计算时候的像素点的取值,如果是Point(-1,-1),那么自动取值中间的那个点.
5.归一化标志,默认归一化为真,会将目标图像归一化到源图像的取值范围
关于第三个参数图像的深度:有这几种格式:
当需要在不同深度的图像之间转换时,也可以用cvScale()这个函数。这个时候的转换,中间有个截断处理过程。比如IPL_DEPTH_64F到IPL_DEPTH_8U,就会把300转换到255。下面转一段别人总结的深度显示范围。
测试double型:0.0–1.0之间 IPL_DEPTH_64F
测试float型:0.0–1.0之间 IPL_DEPTH_32F
测试long型:0–65535之间 IPL_DEPTH_32S
测试short int型:-32768–32767之间 IPL_DEPTH_16S
测试unsigned short int型:0–65535之间 IPL_DEPTH_16U
测试char型:-128–127之间 IPL_DEPTH_8S
测试unsigned char型:0–255之间 IPL_DEPTH_8U
这个时候如果需要保存图像,请记住要先转换到IPL_DEPTH_8U的深度。
例:boxFilter(srcImage, box_Image, -1, Size(3, 3), Point(-1, -1), false,BORDER_DEFAULT);
2.均值滤波