本文主要是介绍OpenCV中的形态学操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 腐蚀(Erosion):这个操作会“腐蚀”图像中的前景物体边界(即:使前景物体在图像中变小)。这是通过在图像中滑动一个结构元素,如果结构元素与前景物体的所有像素都相匹配,那么中心像素就保持不变,否则它就被腐蚀(设置为0)。腐蚀操作在去除小的噪声、断开两个连接在一起的物体等场景中很有用。
img_eroded = cv2.erode(img, kernel)
- 膨胀(Dilation):这个操作与腐蚀操作相反,它会“膨胀”图像中的前景物体(即:使前景物体在图像中变大)。这是通过在图像中滑动一个结构元素,如果结构元素与前景物体的任何一个像素相匹配,那么中心像素就被膨胀(设置为1)。膨胀操作在连接两个分开的物体、关闭前景物体中的小洞等场景中很有用。
img_dilated = cv2.dilate(img, kernel)
- 开运算(Opening):这个操作是先进行腐蚀操作,然后进行膨胀操作。开运算可以用来去除噪声。
img_opened = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
- 闭运算(Closing):这个操作是先进行膨胀操作,然后进行腐蚀操作。闭运算可以用来关闭前景物体中的小洞或小黑点。
img_closed = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
- 形态学梯度(Morphological Gradient):这个操作是膨胀操作和腐蚀操作的差别。结果会得到物体的边界。
img_gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
- 顶帽(Top Hat):这个操作是原始图像和开运算结果的差别。结果会得到比原始图像亮的区域。
img_tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
- 黑帽(Black Hat):这个操作是闭运算结果和原始图像的差别。结果会得到比原始图像暗的区域。
img_blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
这篇关于OpenCV中的形态学操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!