opencv腐蚀、膨胀、开闭运算

腐蚀和膨胀是最基本的形态学运算。
腐蚀和膨胀是针对白色部分(高亮部分)而言的。
膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;腐蚀是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。
膨胀就是求局部最大值的操作,从图像直观看来,就是将图像光亮部分放大,黑暗部分缩小。
闭运算是先膨胀后腐蚀的过程,其功能是用来填充物体内细小空洞、 闭操作可以消弭狭窄的间断,消除小的孔洞。 同时不明显改变不明显改变其面积。
先腐蚀后膨胀的过程就称为开运算。开操作可以平滑物体轮廓,断开狭窄的间断和消除细小的突出物。
孔洞指的是黑的,突出物和小物体指的是白的

#include<opencv2\opencv.hpp>   
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;


int main()
{
    Mat img = imread(路径名);
    namedWindow("原始图", WINDOW_NORMAL);
    imshow("原始图", img);
    Mat out;
    //获取自定义核
    Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形(MORRPH_ELLIPSE)、交叉型(MORPH_CROSS)的
    //膨胀操作
    dilate(img, out1, element);
    //腐蚀操作
    erode(img,out2,element);
    //闭运算
    morphologyEx(img,closedImg,CV_MOP_CLOSE,element);
    //开运算
    morphologyEx(img,openImg,CV_MOP_OPEN,element);
    namedWindow("处理后", WINDOW_NORMAL);
    imshow("处理后", out);
    waitKey(0);

}

猜你喜欢

转载自blog.csdn.net/qq_30339595/article/details/79659371
今日推荐