请用Python写一段绘制轮廓的程序
这里提供一个基于OpenCV库的绘制轮廓的程序。
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 阈值分割
_, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 0, 255), 3)
# 显示结果
cv2.imshow('contour', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
这个程序首先读取一张图像,并将其转换为灰度图像。然后使用阈值分割将图像分割成黑白两部分,这里选择的阈值为127。接着使用 cv2.findContours 函数查找图像中的轮廓,其中 cv2.RETR_EXTERNAL 表示只查找最外层轮廓,cv2.CHAIN_APPROX_SIMPLE 表示只保留轮廓的端点,减少数据量。最后使用 cv2.drawContours 函数将找到的轮廓绘制在原图上,并在窗口中显示结果。
需要注意的是,这里的轮廓是指的连续的曲线,可以将其看作物体的边缘,而不是物体的形状。如果想要绘制物体的形状,可以使用 cv2.approxPolyDP 函数将轮廓近似为多边形,并绘制多边形的边界。
原文地址: https://www.cveoy.top/t/topic/bnNo 著作权归作者所有。请勿转载和采集!