drawContours
时间: 2023-09-20 22:03:38 浏览: 84
`drawContours` 是 OpenCV 中的一个函数,用于在图像上绘制轮廓线。它的语法如下:
```python
cv.drawContours(image, contours, contourIdx, color, thickness=None, lineType=None, hierarchy=None, maxLevel=None, offset=None)
```
其中:
- `image`:输入的图像,可以是单通道或三通道图像,8位无符号整数或浮点数类型。
- `contours`:要绘制的轮廓线,是一个包含所有轮廓线的列表。每个轮廓线是一个包含轮廓点的 numpy 数组。
- `contourIdx`:指定要绘制的轮廓线的索引。如果为负数,则绘制所有轮廓线。
- `color`:轮廓线的颜色,可以是一个 RGB 元组或者是一个标量值。如果是一个标量值,则对于单通道图像,该值将被复制到三个通道上。
- `thickness`:轮廓线的粗细,默认值为 1。
- `lineType`:轮廓线的类型,默认值为 `cv.LINE_8`。
- `hierarchy`:轮廓线的层级结构,如果不需要可以不传入。
- `maxLevel`:轮廓线的最大层级数,如果不需要可以不传入。
- `offset`:绘制轮廓线时的偏移量,如果不需要可以不传入。
下面是一个绘制轮廓线的示例代码:
```python
import cv2 as cv
import numpy as np
# 读取图像
img = cv.imread('test.jpg')
# 转换为灰度图像
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# 二值化处理
ret, thresh = cv.threshold(gray, 127, 255, cv.THRESH_BINARY)
# 查找轮廓线
contours, hierarchy = cv.findContours(thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
# 绘制轮廓线
cv.drawContours(img, contours, -1, (0, 0, 255), 2)
# 显示图像
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()
```
这段代码首先读取一张图像,然后将其转换为灰度图像并进行二值化处理。接下来使用 `cv.findContours` 函数查找图像中的轮廓线,并将其存储在 `contours` 列表中。最后使用 `cv.drawContours` 函数将轮廓线绘制在图像上,并显示结果。
阅读全文