基于c++ opencv填充轮廓内部
时间: 2023-11-14 13:05:37 浏览: 281
要在C++ OpenCV中填充轮廓内部,可以使用cv::fillPoly函数。以下是一个示例代码:
```
// 创建一个黑色的图像
cv::Mat image = cv::Mat::zeros(500, 500, CV_8UC3);
// 定义一个包含多边形顶点的vector
std::vector<std::vector<cv::Point>> contours;
contours.push_back({cv::Point(100, 100), cv::Point(300, 100), cv::Point(200, 300)});
// 在图像上绘制多边形
cv::drawContours(image, contours, 0, cv::Scalar(255, 255, 255), -1);
// 填充多边形内部
cv::fillPoly(image, contours, cv::Scalar(255, 0, 0));
// 显示图像
cv::imshow("Filled Contour", image);
cv::waitKey(0);
```
在上面的代码中,我们首先创建了一个黑色的图像,然后定义了一个包含一个多边形顶点的vector。接着,我们使用`cv::drawContours`函数在图像上绘制了多边形,并使用`cv::fillPoly`函数填充了多边形内部。最后,我们显示了填充后的图像。
注意,在使用`cv::fillPoly`函数时,需要提供包含多边形顶点的vector和填充颜色。如果要填充多个轮廓,请将轮廓添加到vector中,并在调用`cv::fillPoly`函数时传递整个vector。
阅读全文