用形态学滤波器腐蚀和膨胀图像

一、腐蚀和膨胀运算

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 查看本文章

闭合:先膨胀后腐蚀,可把错误分裂成小碎片的物体连接起来

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

猜你喜欢

转载自www.cnblogs.com/study0223/p/12641325.html