形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)

一、开操作 Open

  1. 算法说明:
    对图像进行 先腐蚀后膨胀 的操作
    dst = open(src, element) = dilate(erode(dst, element))
  2. 应用:
    假设图片对象前景色为白色,背景色为黑色,通过开操作,可以去掉小范围的对象元素。
    同样,也可以用于有效的消除亮点(白点)噪音。
  3. 效果示例:
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第1张图片
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第2张图片

二、闭操作 Close

  1. 算法说明:
    对图像进行 先膨胀后腐蚀 的操作
    dst = close(src, element) = erode(dilate(dst, element))
  2. 应用:
    假设图片对象前景色为白色,背景色为黑色,通过开操作,可以去掉小范围的对象元素。
    同样,也可以用于有效的消除暗点(黑点)噪音。
  3. 效果示例:
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第3张图片
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第4张图片

三、形态学梯度 Morphological Gradient

  1. 算法说明:
    膨胀减去腐蚀
    dst = morph_grad(src, element) = dilate(src, element) - erode(src, element)
    (这里指基本梯度,其他还包括 内部梯度、方向梯度)
  2. 应用:.
    针对二值图,可以去掉填充部分得到轮廓线
  3. 效果示例:
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第5张图片
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第6张图片

四、顶帽 Top Hat

  1. 算法说明:
    顶帽 是源图像与开操作图像之间的差值图像
  2. 效果示例:
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第7张图片

五、黑帽 Black Hat

  1. 算法说明:
    黑帽 是闭操作图像与源图像的差值图像
  2. 效果示例:
    形态学操作(开操作,闭操作,形态学梯度,顶帽,黑帽)_第8张图片

六、API说明

// 形态学扩展
void morphologyEx( InputArray src, OutputArray dst,
                                int op, InputArray kernel )
  • Mat src:输入图像
  • Mat dst:输出图像
  • int op:形态学操作类型
    CV_MOP_OPEN:开操作
    CV_MOP_CLOSE:闭操作
    CV_MOP_GRADIENT:形态学梯度
    CV_MOP_TOPHAT:顶帽
    CV_MOP_BLACKHAT:黑帽
  • Mat kernel:结构元素
  • 其他默认参数咱不说明

你可能感兴趣的:(OpenCV学习旅程)