opencv drawcontours
时间: 2023-06-05 16:47:16 浏览: 130
OpenCV 的 cv2.drawContours() 函数可以在图像上绘制轮廓。这个函数接受三个参数:
- image:要在其上绘制轮廓的图像
- contours:要绘制的轮廓,它是一个 Python 列表,其中包含了多个轮廓(每个轮廓也是一个列表)
- contourIdx:要绘制的轮廓的索引,如果指定为 -1,则绘制所有轮廓。
例如,下面的代码将在图像 img 上绘制所有轮廓:
```
cv2.drawContours(img, contours, -1, (0,255,0), 3)
```
最后一个参数是线条粗细,第三个参数是轮廓索引,第四个参数是颜色。
相关问题
opencv drawcontours
drawContours是OpenCV图像处理库中的一个函数,用于绘制轮廓。它接受输入图像、轮廓数据、轮廓索引、颜色、线条宽度等参数,并将绘制结果应用于输入图像。
对于Python,drawContours的原型如下:
image = cv.drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]])
对于C++,drawContours的原型如下:
void cv::drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const Scalar & color, int thickness = 1, int lineType = LINE_8, InputArray hierarchy = noArray(), int maxLevel = INT_MAX, Point offset = Point())
使用drawContours函数时,可以通过调整轮廓索引参数contourIdx进行迭代处理,以实现对每个轮廓的单独填充绘制。
以下是一个使用迭代处理的示例代码:
int idx = 0;
for (; idx >= 0; idx = hierarchy[idx][0]) {
Scalar color(rand() & 255, rand() & 255, rand() & 255);
drawContours(dst, contours, idx, color, FILLED, 8, hierarchy);
}
OpenCV drawContours
OpenCV中的`drawContours`函数可以在图像上绘制轮廓。该函数的语法如下:
```python
cv.drawContours(image, contours, contourIdx, color, thickness=None, lineType=None, hierarchy=None, maxLevel=None, offset=None)
```
其中,各个参数的含义如下:
- `image`:要绘制轮廓的图像。
- `contours`:轮廓列表,每个轮廓是一个Numpy数组。
- `contourIdx`:要绘制的轮廓的索引。如果为负数,则绘制所有轮廓。
- `color`:绘制轮廓的颜色(BGR)。
- `thickness`:轮廓线的粗细。如果为负数或者`cv.FILLED`,则填充轮廓内部。
- `lineType`:绘制轮廓线的类型。
- `hierarchy`:轮廓的层次结构,可选参数。
- `maxLevel`:绘制的轮廓的最大级别,可选参数。
- `offset`:绘制轮廓时的偏移量,可选参数。
例如,下面的代码片段将在图像上绘制所有轮廓,颜色为红色,线宽为3:
```python
import cv2 as cv
img = cv.imread('image.jpg')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
_, contours, _ = cv.findContours(gray, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
cv.drawContours(img, contours, -1, (0, 0, 255), 3)
cv.imshow('Contours', img)
cv.waitKey(0)
```
阅读全文