drawContours 画轮廓填充线
时间: 2024-08-14 21:01:34 浏览: 60
`drawContours()` 是 OpenCV 中的一个函数,用于在图像上绘制轮廓线或填充轮廓区域。当你有一个二进制图像或者灰度图像并且已经通过边缘检测或其他方法得到了轮廓信息(轮廓点序列),`drawContours` 可以帮助你可视化这些轮廓。
该函数的基本原型通常是这样的:
```cpp
void drawContours(Mat& img, std::vector<std::vector<Point>>& contours, int contourIdx, Scalar color, int thickness, bool filled = false);
```
参数解释:
- `img`:输入图像,可以是原始的单通道或彩色图像。
- `contours`:存储轮廓点集合的向量。
- `contourIdx`:想要绘制的轮廓索引。如果为 -1,则会绘制所有轮廓。
- `color`:轮廓线条的颜色。
- `thickness`:轮廓线的宽度。
- `filled`:布尔值,指定是否填充轮廓内部(true)或只画外边框(false,默认)。
举个例子,如果你有一组轮廓,你可以像这样使用它:
```cpp
std::vector<std::vector<Point>> contours; // 轮廓信息
Mat image = imread("your_image.jpg"); // 读取图片
cv::drawContours(image, contours, 0, cv::Scalar(0, 0, 255), 2); // 画出第一个轮廓,红色,线宽2
cv::imshow("Contours", image); // 显示结果
```
阅读全文