[C++] opencv - polylines函数介绍和使用场景

27 篇文章 2 订阅

polylines函数介绍

C++ OpenCV中的polylines函数用于在图像上绘制多边形。它函数原型如下:

/** @brief Draws several polygonal curves.

@param img Image.
@param pts Array of polygonal curves.
@param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed,
the function draws a line from the last vertex of each curve to its first vertex.
@param color Polyline color.
@param thickness Thickness of the polyline edges.
@param lineType Type of the line segments. See #LineTypes
@param shift Number of fractional bits in the vertex coordinates.

The function cv::polylines draws one or more polygonal curves.
 */
void polylines(InputOutputArray img, InputArrayOfArrays pts,
                            bool isClosed, const Scalar& color,
                            int thickness = 1, int lineType = LINE_8, int shift = 0 );

/** @overload */
void polylines(InputOutputArray img, const Point* const* pts, const int* npts,
                          int ncontours, bool isClosed, const Scalar& color,
                          int thickness = 1, int lineType = LINE_8, int shift = 0 );

函数的参数如下:

img:要绘制折线的图像。
pts:一个包含多条折线顶点坐标的数组。
isClosed:一个布尔值,表示绘制的折线是否闭合。如果为true,则从每条折线的最后一个顶点到第一个顶点绘制一条线段。
color:折线的颜色。
thickness:折线边缘的粗细,默认值为1。如果为负数,则对绘制的多边形进行内部填充。
lineType:线段类型,参见#LineTypes。
shift:顶点坐标中的小数位数,默认值为0。
函数首先检查输入参数的有效性,然后根据pts的类型调用不同的重载版本的polylines函数进行绘制。

使用场景

  1. 图像处理:在图像上绘制特定形状,如多边形、矩形等。
  2. 计算机视觉:识别和跟踪物体,如车辆、行人等。
  3. 游戏开发:在游戏中绘制图形元素,如角色、道具等。

使用案例

绘制空心矩形

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    // 创建一个空白图像
    Mat img = Mat::zeros(400, 400, CV_8UC3);

    // 定义多边形的顶点坐标
    vector<Point> pts;
    pts.push_back(Point(50, 50));
    pts.push_back(Point(200, 50));
    pts.push_back(Point(200, 200));
    pts.push_back(Point(50, 200));

    // 绘制多边形
    polylines(img, pts, true, Scalar(0, 255, 0), 2, LINE_4);

    // 显示图像
    imshow("Polygon", img);
    waitKey(0);

    return 0;
}

总结

C++ OpenCV中的polylines函数可以方便地在图像上绘制多边形,适用于各种图像处理和计算机视觉任务。通过调整函数参数,可以实现不同颜色、粗细、闭合方式的多边形绘制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老狼IT工作室

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值