cv2 轮廓坐标绘制实心图像
时间: 2024-10-16 19:07:32 浏览: 19
`cv2`是OpenCV(计算机视觉库)在Python中的接口,它提供了一系列用于处理图像和视频的强大功能。当你想要在图像上绘制轮廓(contours)时,通常会涉及到轮廓检测和描边操作。对于实心图像(filled shapes),你可能会对轮廓内部填充颜色。
首先,你需要通过`cv2.findContours()`函数检测图像中的轮廓。这个函数会返回轮廓列表和一个表示轮廓层次结构的信息。然后,你可以遍历每个轮廓,并使用`cv2.drawContours(image, contours, contourIndex, color[, thickness, lineType[, shift]])`来绘制轮廓。`image`是你要操作的目标图像,`contours`是轮廓列表,`contourIndex`是你想画的那个轮廓的索引,`color`是你选择的颜色,`thickness`控制线条粗细,`lineType`可以指定线型(如连续、点等),`shift`是轮廓填充模式。
例如:
```python
import cv2
# 假设img是已经读取的图像
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)
# 创建新的图像,准备填充轮廓
filled_img = img.copy()
# 遍历轮廓并绘制
for cnt in contours:
cv2.drawContours(filled_img, [cnt], -1, (0, 255, 0), -1) # 第二个-1代表整个轮廓,-1是实心填充,绿色
cv2.imshow("Filled Image", filled_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文