【OpenCV】62 图像形态学—膨胀与腐蚀

62 图像形态学—膨胀与腐蚀

代码

import cv2 as cv
import numpy as np

src = cv.imread("../images/hist_02.jpg")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)

# 使用3x3结构元素进行膨胀与腐蚀操作
se = np.ones((3, 3), dtype=np.uint8)
dilate = cv.dilate(src, se, None, (-1, -1), 1)
erode = cv.erode(src, se, None, (-1, -1), 1)

# 显示
cv.imshow("dilate", dilate)
cv.imshow("erode", erode)
cv.waitKey(0)
cv.destroyAllWindows()

实验结果

在这里插入图片描述

解释

膨胀与腐蚀是图像形态学最基础的两个操作,形态学的其它操作都是基于这两个操作基础上得到的,图像形态学是二值图像分析的重要分支学科。在OpenCV中膨胀与腐蚀对应两个相关的API,膨胀可以看成是最大值滤波,即用最大值替换中心像素点;腐蚀可以看出是最小值滤波,即用最小值替换中心像素点。

膨胀的API如下:

dst	= cv.dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])
  • src 输入图像,任意通道的
  • kernel 结构元素
  • dst 输出图像,类型与通道数目必须跟输入保持一致
  • anchor 中心位置锚定
  • iterations 循环次数
  • borderType 边缘填充类型
  • borderValue 边界不变时的边界值

腐蚀的API如下:

dst	= cv.erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])
  • src 输入图像,任意通道的
  • kernel 结构元素
  • dst 输出图像,类型与通道数目必须跟输入保持一致
  • anchor 中心位置锚定
  • iterations 循环次数
  • borderType 边缘填充类型
  • borderValue 边界不变时的边界值

所有内容均来源于贾志刚老师的知识星球——OpenCV研习社,本文为个人整理学习,已获得贾老师授权,有兴趣、有能力的可以加入贾老师的知识星球进行深入学习。
在这里插入图片描述

发布了111 篇原创文章 · 获赞 0 · 访问量 1688

猜你喜欢

转载自blog.csdn.net/liu_taiting/article/details/104939649