opencv —— erodedilate 腐蚀与膨胀

Posted bjxqmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv —— erodedilate 腐蚀与膨胀相关的知识,希望对你有一定的参考价值。

腐蚀与膨胀是形态学滤波。其中,腐蚀是最小值滤波,膨胀是最大值滤波,即分别选取内核中的最小值与最大值赋值给锚点。若内核为 N×1 或 1×N 形状,可用于横纵方向直线检测。

膨胀:dilate 函数

void dilate (InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue());

  • src,输入图像,即原图像,填 Mat 类的对象即可。
  • dst,目标图像,需要和原图片有一样的尺寸和类型。
  • kernel,膨胀操作的核。当为 NULL 时,表示的是使用参考点位于中心,大小 3×3 的核。

一般用函数 getStructuringElement 配合这个参数使用。

例如:Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));

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

    • shape,矩形:MORPH_RECT

交叉形:MORPH_CROSS

椭圆形:MORPH_ELLIPSE

    • ksize,内核的尺寸。
    • anchor,锚点的位置,默认位于中心。
  • anchor,锚点的位置,默认位于中心。
  • iterations 迭代使用 dilate() 的次数,默认值为 1。
  • borderType,边界拓展的方法。
  • borderValue,当边界为常数时的边界值,有默认值,一般不用管。

 

腐蚀:erode 函数

void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue());

  • 成员函数意义几乎和 dilate 一致

 

以上是关于opencv —— erodedilate 腐蚀与膨胀的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV图像处理篇之腐蚀与膨胀

[opencv]图像处理-腐蚀操作与膨胀操作

OpenCV---膨胀与腐蚀

OpenCV 形态学操作:膨胀与腐蚀

OpenCV 形态学操作:膨胀与腐蚀

opencv中的腐蚀与膨胀(转)