一、腐蚀和膨胀运算。
1.定义
腐蚀(erode):就是把当前像素替换成所定义的像素集合的最小值。
膨胀(dilate):就是把当前像素替换成所定义的像素集合的最大值。
2.用法及代码实现
erode(输入,输出,模板,腐蚀起始位置,迭代次数);//起始位置通常定义为Point(-1,-1),表示原点是矩阵的中心(默认值)
dilate(输入,输出,模板,腐蚀起始位置,迭代次数);//起始位置通常定义为Point(-1,-1)
Mat eroded,dilated;//腐蚀膨胀
erode(src,eroded,Mat());//Mat()是默认3*3模板
dilate(src,dilated,Mat());
/*
Mat element15(15,15,CV_8U,Scalar(1));//设置15*15全为1得模板
erode(src,eroded,element,Point(-1,-1),3);//运用15*15的模板从矩阵的中心点开始腐蚀3次
*/
二、开启和闭合操作。
1.定义
开启:先腐蚀后膨胀,可以移除因图像噪声产生的斑点
扫描二维码关注公众号,回复:
10528553 查看本文章
![](/qrcode.jpg)
闭合:先膨胀后腐蚀,可把错误分裂成小碎片的物体连接起来
2.用法及代码实现
这两种运算使用的是高级形态学滤波器函数,morphologyEx函数。
MORPH_ERODE = 0, //腐蚀
MORPH_DILATE = 1, //膨胀
MORPH_OPEN = 2, //开操作
MORPH_CLOSE = 3, //闭操作
MORPH_GRADIENT = 4, //梯度操作 提取出图像的边缘
MORPH_TOPHAT = 5, //顶帽操作 提取出局部的小型前景物体
MORPH_BLACKHAT = 6, //黑帽操作 提取出页面上的文字
闭合图像:
Mat element7(7,7,CV_8U,Scalar(1));//设置7*7全为1得模板 morphologyEx(src,eroded,MORPH_CLOSE,element7);//输入 输出 操作(参照上面给出的参数) 模板
三、分水岭算法。
分水岭是经典的图像分割算法,但是能力不够没有实现,可以参考其他博主的博文继续学习。
https://blog.csdn.net/iracer/article/details/49225823