opecv 在图片的不同区域自动画不同颜色的线
时间: 2023-05-28 20:02:34 浏览: 120
在OpenCV中,可以通过下面的步骤在不同区域绘制不同颜色的线:
1.读取图片并将其转换为灰度图像。
```c++
cv::Mat img = cv::imread("image.jpg");
cv::Mat gray;
cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY);
```
2.使用Canny算法检测边缘。
```c++
cv::Mat edges;
cv::Canny(gray, edges, 50, 150);
```
3.使用findContours函数找到边缘的轮廓。
```c++
std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(edges, contours, hierarchy, cv::RETR_TREE, cv::CHAIN_APPROX_SIMPLE);
```
4.循环遍历每个轮廓,并使用不同的颜色在图像上画出线条。
```c++
for (int i = 0; i < contours.size(); i++) {
cv::Scalar color = cv::Scalar(rand() % 256, rand() % 256, rand() % 256);
cv::drawContours(img, contours, i, color, 2, cv::LINE_8, hierarchy, 0);
}
```
此时,每个轮廓都会被绘制为不同的颜色线条。可以根据需要进行调整,如使用不同的线宽或颜色等。
阅读全文