zoukankan      html  css  js  c++  java
  • 腐蚀膨胀开闭运算

    图像形态学即数学形态学(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);
  • 相关阅读:
    Javascript FP-ramdajs
    微信小程序开发
    SPA for HTML5
    One Liners to Impress Your Friends
    Sass (Syntactically Awesome StyleSheets)
    iOS App Icon Template 5.0
    React Native Life Cycle and Communication
    Meteor framework
    RESTful Mongodb
    Server-sent Events
  • 原文地址:https://www.cnblogs.com/lyqf/p/10968241.html
Copyright © 2011-2022 走看看