OpenCV 图像的形态学操作----膨胀腐蚀
程序员文章站
2022-07-14 11:54:11
...
膨胀腐蚀概述
膨胀、腐蚀属于形态学的操作, 简单来说就是基于形状的一系列图像处理操作
膨胀腐蚀是基于高亮部分操作的, 膨胀是对高亮部分进行膨胀, 类似**“领域扩张”, 腐蚀是高亮部分被腐蚀, 类似“领域蚕食”**
膨胀腐蚀的应用和功能:
- 消除噪声
- 分割独立元素或连接相邻元素
- 寻找图像中的明显极大值、极小值区域
- 求图像的梯度
其他相关:
- 开运算、闭运算
- 顶帽、黒帽
- 形态学梯度
膨胀—cv2.dilate()
膨胀就是求局部最大值的操作, 从数学角度上来讲, 膨胀或腐蚀就是将图像(或区域)A与核B进行卷积。
核可以是任意大小和形状, 它有一个独立定义的参考点(锚点), 多数情况下, 核是一个小的中间带参考点和实心正方形或者圆盘, 可以看做是一个模板或掩码。
膨胀是求局部最大值的操做, 核B与图形卷积, 即核B覆盖的区域的像素点的最大值, 并把这个最大值复制给参考点指定的像素, 这样就会使图像中的高亮区域逐渐增长。
import cv2
import numpy as np
img = cv2.imread('j.png', 0)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5)) # 定义矩形核
dilation = cv2.dilate(img, kernel, iterations=1) # 膨胀操作
cv2.imshow("img",img)
cv2.imshow("dilation",dilation)
cv2.waitKey(0)
腐蚀—cv2.erode()
腐蚀和膨胀相反, 是取局部最小值, 高亮区域逐渐减小, 如下图所示:
import cv2
import numpy as np
img = cv2.imread('j.png', 0)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
erosion = cv2.erode(img, kernel)
cv2.imshow("img",img)
cv2.imshow("erosion",erosion)
cv2.waitKey(0)
上一篇: Nginx总结以及具体配置
下一篇: 利用Tkinter制作简易的文本编辑器