用python写一个轮廓编号
以下是一个简单的Python程序,用于轮廓编号:
import cv2
# 读取图像
img = cv2.imread('input.png')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化处理
thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)[1]
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 编号轮廓
for i, cnt in enumerate(contours):
cv2.putText(img, str(i+1), tuple(cnt[0][0]), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2)
cv2.drawContours(img, [cnt], 0, (0, 255, 0), 3)
# 显示结果
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个程序中,我们首先读取输入图像,并将其转换为灰度图像和二值图像。然后,我们使用cv2.findContours()函数查找图像中的轮廓。接下来,我们使用一个简单的循环来为每个轮廓编号,并将编号和轮廓绘制在输出图像上。最后,我们显示结果图像。
请注意,这个程序假设输入图像中只有一个外部轮廓。如果输入图像中有多个轮廓,您可能需要对cv2.findContours()函数的参数进行一些调整。
原文地址: https://www.cveoy.top/t/topic/bqkl 著作权归作者所有。请勿转载和采集!