OpenCV实现RGB彩色多边形与圆的绘制

需积分: 50 7 下载量 58 浏览量 更新于2024-09-07 收藏 41KB TXT 举报
"这篇教程将介绍如何使用OpenCV库在C++环境中绘制RGB填充的正六边形和圆形。OpenCV是一个开源计算机视觉库,它包含了许多用于图像处理和计算机视觉的功能。在这个示例中,我们将关注其图形绘制功能,包括`polylines()`和`fillPoly()`函数来创建多边形,以及`circle()`函数来画圆。" 在OpenCV中,我们可以利用`Mat`类创建图像,并通过设置像素值来填充颜色。首先,创建一个640x480像素的`CV_8UC3`类型(8位无符号整数,3通道颜色)的`Mat`对象`src`,并将其所有像素初始化为0,这代表黑色背景。 为了画出正六边形,我们首先定义了边长`Length`、高度`Higth`和半径`R`。然后,创建一个`vector<Point>`类型的`contour`来存储正六边形的顶点坐标。这些坐标是根据正六边形的几何特性计算出来的。通过`push_back()`方法将每个顶点添加到`contour`中。 接着,我们创建一个`vector<std::vector<cv::Point>>`类型的`contours`,并将`contour`向量放入其中。`contours`向量用于`polylines()`和`fillPoly()`函数,这两个函数都是OpenCV中用于绘制多边形的函数。 `cv::polylines()`函数用于画出多边形的轮廓。在这个例子中,`true`参数表示闭合多边形,`Scalar(0,0,255)`表示红色线条,`0`是线条宽度,`4`是线型。这将画出红色的正六边形轮廓。 `cv::fillPoly()`函数用于填充多边形内部的颜色。在这里,我们使用相同的`contours`向量和`Scalar(0,0,255)`,这将填充正六边形为红色。 最后,`cv::circle()`函数用来画圆。参数包括圆心坐标`Point(Length+Length/2,(Higth+(Length/2*sqrt(3))))`,半径`R`,以及填充颜色`Scalar(0,0,255)`,使得圆也是红色。 这个程序展示了如何利用OpenCV库在图像上绘制RGB颜色的图形,这对于创建视觉效果、进行图像标注或进行图形用户界面的开发非常有用。通过调整不同的颜色值、形状和尺寸,可以实现各种复杂的图形设计。同时,这也是学习OpenCV图形绘制功能的一个基础实例。