cv2.drawContours()函数怎么用
时间: 2023-11-02 08:37:54 浏览: 127
cv2.drawContours()函数用于在图像上绘制轮廓。它的语法为:
cv2.drawContours(image, contours, contourIdx, color, thickness)
其中,image为要绘制的图像,contours为轮廓,contourIdx为要绘制的轮廓索引,color为轮廓颜色,thickness为轮廓线条的粗细。
例如,如果要在一张名为“img”的图像上绘制所有轮廓,可以这样做:
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
这里使用cv2.findContours()函数找到所有轮廓,然后使用cv2.drawContours()函数在原图像上绘制这些轮廓,颜色为绿色,线条粗细为3。
相关问题
cv2.drawcontours填充颜色
要使用cv2.drawContours函数填充颜色,您需要使用cv2.fillPoly函数来填充轮廓。
下面是一个示例代码片段,演示如何使用cv2.drawContours和cv2.fillPoly函数来填充颜色:
```python
import cv2
import numpy as np
# 创建一个空白的图像
image = np.zeros((400, 400, 3), dtype=np.uint8)
# 创建一个包含轮廓点的列表
contours = [[[50, 50], [150, 50], [150, 150], [50, 150]], # 第一个轮廓
[[200, 200], [300, 200], [300, 300], [200, 300]]] # 第二个轮廓
# 绘制轮廓线
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
# 填充轮廓内部颜色
cv2.fillPoly(image, contours, (0, 0, 255))
# 显示图像
cv2.imshow("Filled Contours", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的示例中,我们首先创建了一个空白的图像,然后定义了两个轮廓的点列表。然后,我们使用cv2.drawContours函数绘制了轮廓线,并使用cv2.fillPoly函数填充了轮廓内部的颜色。最后,我们显示了填充了颜色的图像。
请注意,cv2.fillPoly函数接受的颜色参数是一个元组,表示BGR颜色值。在上面的示例中,我们使用红色填充了轮廓内部。您可以根据需要修改颜色值。
msk = cv2.drawContours(self.raw_img, [pts], -1, (1, 1, 1), -1)
这段代码使用OpenCV库的drawContours函数,在原始图像self.raw_img上绘制了一个封闭轮廓。参数说明如下:
- [pts]:表示要绘制的轮廓,它是一个由点坐标组成的列表,例如[[x1,y1],[x2,y2],...,[xn,yn]]。
- -1:表示绘制所有轮廓。
- (1, 1, 1):表示绘制的颜色,这里是白色。
- -1:表示绘制轮廓的填充方式,-1表示填充整个轮廓。如果填充方式为正数,则表示只填充边界。
该函数会返回绘制了轮廓的图像,这里将其赋值给了变量msk。
阅读全文
相关推荐
















