opencv c++ 绘制counters
时间: 2023-06-28 10:08:48 浏览: 209
在 OpenCV 中,绘制轮廓可以使用 `drawContours()` 函数。以下是一个简单的示例代码,它可以读取一张图像,找到图像中的所有轮廓,然后将所有轮廓绘制成红色:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取图像
Mat image = imread("test.jpg");
// 转换为灰度图像
Mat gray;
cvtColor(image, gray, COLOR_BGR2GRAY);
// 二值化图像
Mat binary;
threshold(gray, binary, 100, 255, THRESH_BINARY);
// 查找轮廓
std::vector<std::vector<Point>> contours;
findContours(binary, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
// 绘制轮廓
Mat result = Mat::zeros(image.size(), CV_8UC3);
drawContours(result, contours, -1, Scalar(0, 0, 255), 2);
// 显示结果
imshow("result", result);
waitKey(0);
return 0;
}
```
在这个示例代码中,我们首先使用 `imread()` 函数读取一张图像。然后,我们将图像转换为灰度图像,并对其进行二值化。接下来,我们使用 `findContours()` 函数查找图像中的所有轮廓。最后,我们使用 `drawContours()` 函数将所有轮廓绘制成红色,并显示结果。
在 `drawContours()` 函数中,第一个参数是绘制轮廓的图像,第二个参数是包含所有轮廓的向量,第三个参数是要绘制的轮廓的索引(-1 表示绘制所有轮廓),第四个参数是轮廓的颜色,第五个参数是线条的宽度。
阅读全文