zoukankan      html  css  js  c++  java
  • opencv中的腐蚀与膨胀(转)

    图像腐蚀和图像膨胀是图像中两种最基本形态学操作。

    void erode( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT,
    const Scalar& borderValue=morphologyDefaultBorderValue() );
    void dilate( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT,
    const Scalar& borderValue=morphologyDefaultBorderValue() );

    可见,腐蚀和膨胀的参数完全一样。

    参数:

    src:原图像。

    dst:目标图像。

    element:腐蚀操作的内核。 如果不指定,默认为一个简单的 bubuko.com,布布扣 矩阵。否则,我们就要明确指定它的形状,可以使用函数getStructuringElement().

    anchor:默认为Point(-1,-1),内核中心点。省略时为默认值。

    iterations:腐蚀次数。省略时为默认值1。

    borderType:推断边缘类型,具体参见borderInterpolate函数。默认为BORDER_DEFAULT,省略时为默认值。

    borderValue:边缘值,具体可参见createMorphoogyFilter函数。可省略。

    通常情况下,我们可以使用函数getStructuringElement()来制作操作内核。

    Mat getStructuringElement(int shape, Size esize, Point anchor=Point(-1,-1));

    参数:

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

      

    enum { MORPH_RECT=0, MORPH_CROSS=1, MORPH_ELLIPSE=2 };

    esize:内核大小。

    anchor:内核锚点,默认为内核中心点。

    例:

    Mat element = getStructuringElement( 0,Size( 2*i + 1, 2*i+1 ), Point(i, i ) );
    
      /// 腐蚀操作
      erode( src, dst, element );
    Mat element = getStructuringElement( 0,Size( 2*i + 1, 2*i+1 ), Point(i, i ) );
    
      /// 膨胀操作
      dilate( src, dst, element );
  • 相关阅读:
    用折半查找法找出整型数组中指定元素所在的位置,并输出(折半查找法只能用于有序数列)。
    统计母字符串中含有子串的个数。
    //插入排序法对数组中的元素按从小到大进行排序
    求斐波那契(fibonacci)数列前20项的值 ,递归调用
    C++实现一句英文句子中的单词逆置
    C语言-黑白棋(人机对战)
    第九届蓝桥杯-明码
    四连块dfs
    八连块dfs
    求素数
  • 原文地址:https://www.cnblogs.com/necp-zwl/p/6527305.html
Copyright © 2011-2022 走看看