opencv学习笔记(五)
线性滤波
- 方框滤波——boxblur函数
- 均值滤波(邻域平均滤波)——blur函数
- 高斯滤波——GaussianBlur函数
- 中值滤波——medianBlur函数
- 双边滤波——bilateralFilter函数
关于滤波和模糊-----滤波可分低通滤波和高通滤波两种。而高斯滤波是指用高斯函数作为滤波函数的滤波操作,至于是不是模糊,要看是高斯低通还是高斯高通,低通就是模糊,高通就是锐化。
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。
//载入原图
Mat image = imread("e://4.jpg");
//创建窗口
namedWindow("高斯滤波【原图】");
namedWindow("高斯滤波【效果图】");
//显示原图
imshow("高斯滤波【原图】", image);
//进行高斯滤波操作,其他方式类似
Mat out;
GaussianBlur(image, out, Size(5, 5), 0, 0);
//显示效果图
imshow("高斯滤波【效果图】", out);
waitKey(0);
非线性滤波
-
中值滤波——medianBlur函数
-
void medianBlur(InputArray src,OutputArray dst, int ksize)
-
int类型的ksize,孔径的线性尺寸(aperture linear size),注意这个参数必须是大于1的奇数,比如:3,5,7,9 ...
-
-
双边滤波——bilateralFilter函数
-
void bilateralFilter(InputArray src, OutputArraydst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT)
-
开运算:先腐蚀后膨胀的过程---可以用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积
闭运算:先膨胀后腐蚀的过程---能够排除小型黑洞(黑色区域)
形态学梯度:膨胀图与腐蚀图之差---可以用形态学梯度来保留物体的边缘轮廓
顶帽运算:为原图像与“开运算“的结果图之差---当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用顶帽运算进行背景提取
黑帽运算为:”闭运算“的结果图与原图像之差---用来分离比邻近点暗一些的斑块
morphologyEx函数
void morphologyEx(InputArray src,OutputArray dst,int op,InputArraykernel,Pointanchor=Point(-1,-1),intiterations=1,intborderType=BORDER_CONSTANT,constScalar& borderValue=morphologyDefaultBorderValue());
op类型:
- MORPH_OPEN – 开运算(Opening operation)
- MORPH_CLOSE – 闭运算(Closing operation)
- MORPH_GRADIENT -形态学梯度(Morphological gradient)
- MORPH_TOPHAT - “顶帽”(“Top hat”)
- MORPH_BLACKHAT - “黑帽”(“Black hat“)
博主已搬家到csdn了