• 腐蚀膨胀开闭运算


    图像形态学即数学形态学(Mathematical morphology)是一门建立在格伦和拓扑学基础上的图像分析学科,是数学形态学图像处理的基本理论;

    常见图像形态学运算:腐蚀、膨胀、开运算、闭运算、骨架抽取、极线腐蚀、击中击不中变换、Top-hat变换、颗粒分析、流域变换、形态学梯度等;

    最基本的形态学操作是:膨胀(dilation)和腐蚀(erosion);

    腐蚀:erode

    void erode( Mat& src, //原图像
           Mat& dst, //目标图像
           const Mat& element,//卷积核
           Point anchor=Point(-1,-1),//内核中心点,可省略
           int iterations=1,//腐蚀次数,可省略
            int borderType=BORDER_CONSTANT,//边缘类型,可省略
           const Scalar& borderValue=morphologyDefaultBorderValue()//边缘值,可省略
    );
    例子:
    1     Mat image = imread("C:/figure6_16_a.png");
    2     namedWindow("原图");
    3     imshow("原图", image);
    4     Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));//构造矩形15*15卷积核
    5     Mat out2;
    6 
    7     erode(image, out2, element);
    8     namedWindow("腐蚀图");
    9     imshow("腐蚀图", out2);
    Mat getStructuringElement(int shape, Size esize, Point anchor=Point(-1,-1));

    参数:

    shape:内核形状,主要有MORPH_RECT,MORPH_CROSS和MORPH_ELLIPSE,分别为矩形、椭圆形和交叉形,对应的值分别为0,1,2



    膨胀:

    1     Mat out1;
    2     namedWindow("膨胀图");
    3     dilate(image, out1, element);
    4     imshow("膨胀图", out1);    

    开闭运算:

    OpenCV:morphologyEx()

    功能:morphologyEx函数利用基本的膨胀和腐蚀技术,来执行更加高级形态学变换,

    如开闭运算,形态学梯度,“顶帽”、“黑帽”等等。

    void morphologyEx( 

    InputArray src, //

    OutputArray dst,// 

    int op,//形态学运算的类型

    InputArraykernel, 

    Pointanchor=Point(-1,-1), 

    intiterations=1, 

    intborderType=BORDER_CONSTANT, 

    constScalar& borderValue=morphologyDefaultBorderValue() ); 

    【注】:

    int op:表示形态学运算的类型,

    MORPH_OPEN – 开运算(Opening operation)

    MORPH_CLOSE – 闭运算(Closing operation)

    MORPH_GRADIENT -形态学梯度(Morphological gradient)

    MORPH_TOPHAT - “顶帽”(“Top hat”)

    MORPH_BLACKHAT - “黑帽”(“Black hat“)

    开运算:先腐蚀后膨胀的过程;

    功能:

    消除小物体;

    在纤细处分离物体;

    平滑较大的边界并不明显改变其面积;

    1    Mat out3;
    2     namedWindow("开运算图");
    3     morphologyEx(image, out3, MORPH_OPEN, element);
    4     imshow("开运算图", out3);

    形态学闭运算:

    闭运算(Closing Openration),先膨胀后腐蚀;

    功能:

    排除小型黑洞(黑斑);

       Mat out4;
        namedWindow("闭运算图");
        morphologyEx(image, out4, MORPH_CLOSE, element);
        imshow("闭运算图", out4);
  • 相关阅读:
    vue --- 全局弹窗,只调用对应实例
    代理相关;win操作
    mongoBD + node + express
    菜鸟初学 node 推荐 亲测easy
    H5 ---- 点击遍历所有标签,复制对应的文本
    async与await初步应用
    C# Enum 添加自定义Attribute,然后通过泛型与反射的方式得到事先定义的标记
    VS2013 C# 调用 cognex 的QuickBuild做程序时发生一个错误
    C# 获取数组的内存地址
    利用反射插入数据库与更新数据库
  • 原文地址:https://www.cnblogs.com/lyqf/p/10968241.html
Copyright © 2020-2023  润新知