赞
踩
cv2中的开运算是图像依次经过腐蚀、膨胀处理后的过程。
开运算实际是先腐蚀运算,再膨胀运算,可以把细微连在一起的两块目标分开。一般来说,开运算可以使图像的轮廓变得光滑,还能使狭窄的连接断开和消除细毛刺。开运算在过滤噪声的同时并没有对物体的形状、轮廓造成明显的影响,这是一大优势。当只关心物体的位置或者个数时,物体形状的改变不会给任务带来困扰,此时用开运算处理具有处理速度上的优势。
闭运算
闭运算是图像形态学操作中的一种,是先膨胀后腐蚀的过程。
闭运算能够填充物体内部细小空洞,连接邻近物体,对物体边缘的微小缺口或细小间断进行弥补,使边缘轮廓线更加光滑,但对物体边缘的突出部分则不作处理。因此,闭运算在消除噪声的同时,很好地保持了物体的轮廓形状。
cv2形态学梯度是图像经过膨胀操作后的图像与经过腐蚀操作后的图像的差,可以用于抽出物体的边缘1。
形态学梯度运算是用图像的膨胀图像减腐蚀图像的操作,该操作可以获取原始图像中前景图像的边缘。通过将函数cv2.morphologyEx()的操作类型参数op设置为"cv2.MORPH_GRADIENT",可以实现形态学梯度运算
在OpenCV中,顶帽(Top Hat)操作是一种形态学操作,用于突出图像中的亮区域。顶帽操作是通过从原始图像中减去其开运算(先腐蚀后膨胀)的结果来得到的。因此,顶帽操作的结果保留了原始图像中比周围区域更亮的区域,而暗于周围区域的部分则变为黑色1。
顶帽操作在图像处理中常用于增强图像的亮区域,特别是在背景和前景亮度差异较大的情况下。它可以帮助突出图像中的亮色物体,同时抑制比周围区域暗的噪声2
在OpenCV中,底部帽(Bottom Hat)运算也称为底帽运算或黑帽运算,是形态学图像处理中的一种操作1。
底帽运算是通过对图像执行闭运算(先膨胀后腐蚀)来平滑图像并移除较大尺度的特征,然后将闭运算结果与原始图像进行差分,以突出图像中的暗区域特征。
底帽运算有助于突出原始图像中的暗区域特征,如阴影、均匀区域中的细微细节等,并可用于增强图像中的暗部细节,使其更加清晰。
cv2.morphologyEx() 是 OpenCV 中用于执行高级形态学变换的函数。与 cv2.erode() 和 cv2.dilate() 相比,cv2.morphologyEx() 提供了更多的形态学操作选项,包括开运算、闭运算、梯度、顶部帽、底部帽等。
函数定义
cv2.morphologyEx(src, op, kernel, anchor=None, iterations=1, borderType=cv2.BORDER_CONSTANT, borderValue=None)
示例
以下是一个使用 cv2.morphologyEx() 执行开运算和闭运算的示例:
import cv2 import numpy as np # 读取图像 image = cv2.imread('input.png', cv2.IMREAD_GRAYSCALE) # 定义一个 5x5 的矩形核 kernel = np.ones((5, 5), np.uint8) # 执行开运算 open_image = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel, iterations=1) # 执行闭运算 close_image = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel, iterations=1) # 显示原始图像、开运算结果和闭运算结果 cv2.imshow('Original Image', image) cv2.imshow('Open Operation', open_image) cv2.imshow('Close Operation', close_image) # 等待用户按键,然后关闭窗口 cv2.waitKey(0) cv2.destroyAllWindows()
在这个示例中,我们首先读取一个灰度图像,然后定义一个 5x5 的矩形核。接着,我们使用 cv2.morphologyEx() 函数分别执行开运算和闭运算,并将结果显示出来。
注意事项
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。