OpenCV学习指南(七):形态学运算(膨胀与腐蚀)

目录

  • 前言
  • 膨胀与腐蚀
    • 膨胀的实例
    • 深度例程
  • 文章声明

前言

  图像形态学的基本运算有膨胀与腐蚀、开操作和闭操作,击中与击不中变换,顶帽变换和黑帽变换等。

膨胀与腐蚀

OpenCV学习指南(七):形态学运算(膨胀与腐蚀)_第1张图片

  膨胀(dilate)指的是使用特定的结构元素来放大源图像,该结构元素确定获取最大值的像素邻域的形状。
  数学公式在这里插入图片描述
  腐蚀(erode)指的是使用特定的结构元素来缩小源图像,该结构元素确定获取最小值的像素邻域的形状。
  数学公式
在这里插入图片描述

膨胀的实例

  原图
OpenCV学习指南(七):形态学运算(膨胀与腐蚀)_第2张图片

  执行膨胀

import cv2 as cv
_size = 3
kernel = cv.getStructuringElement(cv.MORPH_DILATE,(_size,_size))
img = cv.imread("1.png",0)
dst = cv.dilate(img,kernel)
cv.imwrite("dst.bmp",dst)

OpenCV学习指南(七):形态学运算(膨胀与腐蚀)_第3张图片
  经过膨胀之后,黑色区域变小了;经过腐蚀之后,黑色区域将变大
  有意思的是如果将图像进行反转,则腐蚀与膨胀的效果也发生了逆转。

深度例程

  CUDA版本的程序调用,先创建cv::cuda::Filter指针,将Mat上传至GpuMat,然后apply(原图,目标图)

        const cv::cuda::GpuMat d_src(src);
        cv::cuda::GpuMat dst;
        cv::Ptr<cv::cuda::Filter> erode = cv::cuda::createMorphologyFilter(cv::MORPH_ERODE, src.type(), ker);
        erode->apply(d_src, dst);

文章声明

  OpenCV学习指南系列是笔者倾力写作的OpenCV学习指南,如若转载请著名出处。如果你在阅读中仍然心存疑问,请联系笔者的邮箱[email protected]

你可能感兴趣的:(OpenCV)