opencv3 6.3形态学滤波:腐蚀&膨胀

形态学滤波

数学形态
Mathematical morpgology

这两个操作针对的是对图像的高亮部分,而不是黑色部分

膨胀

dilate 求局部最大值的操作,膨胀或腐蚀操作从数学来讲就是将图像与核进行卷积。
核B与图片卷积,B覆盖区域中像素点最大值赋给A目标点,是图像中高亮区域逐渐增长。

腐蚀

erode与膨胀是相反的操作,求局部最小值。

相关源码分析

erode dilate都是调用了morphOp函数,只不过第一个参数不一样
(MORPH_ERODE,MORPH_DILATE)

相关核心API函数

- dilate函数

dilate()

  • 参数1 src Mat类,深度CV_8U CV_16U CV_16S CV_64F

  • 参数2 dst

  • 参数3 kernal 膨胀操作的核,当为NULL时候,表示的是参考点位于3*3的核

  • 参数4 Point anchor

  • 参数5 int iterations 迭代使用dilate()函数的次数,默认1

  • 参数6 int borderType

  • 参数7 const Scalar& borderValue 有默认值,不用管

  • 使用函数 getStructingElement 返回指定形状和尺寸的结构元素(内核矩阵),来获取自定义核

  • 参数1 有三种形状可以选:MORPH_RECT MORPH_CROSS MORPH_ELLIPSE

  • 参数2 内核尺寸

  • 参数3 锚点位置

erode函数

形参和dilate完全一样,不再赘述

原文地址:https://www.cnblogs.com/koukouStar/p/14534999.html