OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配项
基本图形绘制

下一教程: 使用 OpenCV 的随机生成器和文本

原作者Ana Huamán
兼容性OpenCV >= 3.0

目标

在本教程中你将学习如何

  • 使用 OpenCV 函数 line() 绘制一条直线
  • 使用 OpenCV 函数 ellipse() 绘制一个椭圆
  • 使用 OpenCV 函数 rectangle() 绘制一个矩形
  • 使用 OpenCV 函数 circle() 绘制一个
  • 使用 OpenCV 函数 fillPoly() 绘制一个填充多边形

代码

说明

由于我们计划绘制两个示例(一个原子和一个城堡),因此我们必须创建两个图像和两个窗口来显示它们。

我们创建了绘制不同几何形状的函数。例如,为了绘制原子,我们使用了MyEllipseMyFilledCircle

为了绘制城堡,我们使用了 MyLinerectangleMyPolygon

我们来检查一下这些函数中都有什么

MyLine

  • 正如我们所看到的,MyLine只调用了函数 line(),它做了如下工作
    • 从点 start到点 end绘制一条线
    • 该线显示在图像 img
    • 线颜色由 ( 0, 0, 0 )定义,这是对应于 黑色的 RGB 值
    • 线粗设置为 thickness(本例中为 2)
    • 该线是 8 进制(lineType = 8)

MyEllipse

  • 从上面的代码中,我们可以观察到函数 ellipse()绘制一个椭圆,因此
    • 椭圆显示在图像 img
    • 椭圆中心位于点 (w/2, w/2),并被一个大小为 (w/4, w/16)的框包围
    • 椭圆旋转 angle
    • 椭圆在 0360 度之间延伸出一个弧
    • 这个图形的颜色将是 ( 255, 0, 0 ),这意味着 BGR 值为蓝色。
    • 椭圆的 thickness为 2。

MyFilledCircle

  • 与椭圆函数类似,我们可以观察到 circle接收的参数为
    • 将显示圆的图像 (img)
    • 以点 center表示的圆心
    • 圆的半径:w/32
    • 圆的颜色:( 0, 0, 255 ),表示 BGR 中的红色
    • 由于 thickness = -1,圆将填充为实心。

MyPolygon

  • 为了绘制一个填充多边形,我们使用了函数 fillPoly()。我们注意到
    • 多边形将绘制在 img
    • 多边形的顶点是 ppt 中的一组点
    • 多边形的颜色由 ( 255, 255, 255 ) 定义,这是白色的 BGR 值

rectangle

  • 最后,我们有 cv::rectangle 函数(我们没有为此家伙创建特殊函数)。我们注意到
    • 矩形将绘制在 rook_image
    • 矩形的两个对角顶点由 ( 0, 7*w/8 )( w, w )定义
    • 矩形颜色由 ( 0, 255, 255 )给出,这是黄色的 BGR 值
    • 由于厚度值由 FILLED (-1)给出,矩形将被填充为实心。

结果

编译并运行你的程序应该会给你这样的结果