Python 轮廓检测代码:显示轮廓编号
以下是一个简单的轮廓检测代码,并显示轮廓编号:
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 将图像转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 显示轮廓编号
for i, contour in enumerate(contours):
cv2.drawContours(img, [contour], 0, (0, 0, 255), 2)
cv2.putText(img, str(i), tuple(contour[0][0]), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 0, 0), 2)
# 显示结果图像
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个代码中,我们首先读取一张图像,并将其转为灰度图像。然后进行二值化处理,得到二值图像。接着使用 cv2.findContours()
函数查找轮廓,并使用 cv2.drawContours()
函数将轮廓绘制在图像上。同时,我们使用 cv2.putText()
函数将轮廓编号显示在轮廓的起点处。最后,我们显示结果图像并等待用户按下任意键关闭窗口。
注意,在该代码中,我们使用 cv2.RETR_TREE
标志来表示检索轮廓树的完整层级结构,并使用 cv2.CHAIN_APPROX_SIMPLE
标志来表示使用简单的压缩方法来表示轮廓。当然,这些标志都可以根据具体的应用场景进行调整。
原文地址: https://www.cveoy.top/t/topic/mS4J 著作权归作者所有。请勿转载和采集!