下面是一个使用OpenCV库实现的示例代码,其中包括了检测并绘制轮廓、填充轮廓等功能:

import cv2

# 读取图像
img = cv2.imread('example.jpg')

# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, 0)

# 检测轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

# 绘制轮廓
cv2.drawContours(img, contours, 0, (0, 255, 0), 3)

# 填充轮廓
cv2.fillPoly(img, pts=[contours[0]], color=(192, 192, 192))

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个示例代码中,我们首先读取了一张图像,并将其转换为灰度图像。然后使用二值化处理方法将图像转换为黑白图像,以便于检测轮廓。接着使用OpenCV的findContours函数检测轮廓,并使用drawContours函数绘制轮廓。

在绘制完轮廓之后,我们使用fillPoly函数填充第一个轮廓,并将颜色设置为灰色。最后使用imshow函数显示图像,等待用户按下任意键后关闭窗口。

需要注意的是,在使用OpenCV的findContours函数时,返回的轮廓列表是按照面积从大到小排列的,因此我们在这里直接使用了第一个轮廓。如果需要绘制或填充其他轮廓,可以通过遍历列表来实现。

用python检测并绘制轮廓把第一个轮廓用灰色填充

原文地址: https://www.cveoy.top/t/topic/bp3Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录