openCV 小结7——基本图形的绘制

本文详细介绍了计算机视觉领域中常用的图形绘制函数,包括ellipse用于绘制椭圆、circle用于绘制圆、line用于绘制直线、fillPoly用于绘制填充多边形以及rectangle用于绘制长方形等。通过这些函数的具体使用案例,读者可以快速掌握不同图形的绘制方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.用于绘制椭圆的ellipse函数

int thickness=2;
int lineType=8;
double angle=45;

ellipse(img,//图像
    Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),//椭圆中心
    Size(WINDOW_WIDTH/4,WINDOW_WIDTH/16),//椭圆的宽度和高度
    angle,//倾角(椭圆旋转角度[顺时针])
    0,//弧度范围
    360,
    Scalar(255,129,0),//图形颜色
    thickness,//线宽
    lineType);//线型

2.用于绘制圆的circle函数

int thickness=-1;
int lineType=8;

circle(img,//图像
    Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),//圆心
    WINDOW_WIDTH/32,//半径
    Scalar(0,0,255),//颜色
    thickness,//线宽
    lineType);//线型

3.用于绘制直线的line函数

int thickness=2;
int lineType=8;

line(img,//图像
    Point(WINDOW_WIDTH/2,WINDOW_WIDTH/2),//线段起点
    Point(WINDOW_WIDTH/4,WINDOW_WIDTH/4),//线段终点
    Scalar(0,0,0),//颜色
    thickness,//线宽
    lineType);//线型

4.用于绘制填充多边形的fillPoly函数。
函数原型:

void cv::fillPoly(cv::Mat&,//图像
         const Point**,// 指向多边形的数组指针
         const int*,//多边形顶点个数的数组
         int, //多边形的数量
         const Scalar&,//多边形颜色
         int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
         int shift = 0, // 偏移量(坐标点的小数点位数)
         cv::Point offset = Point()); //整体偏移量

使用方法:

    Point point1[3][4];
    point1[0][0] = Point(200, 40); /* 三角形的点的相关信息 */
    point1[0][1] = Point(150, 80); 
    point1[0][2] = Point(250, 80); 
    point1[1][0] = Point(150, 100); /* 正方形的相关信息 */
    point1[1][1] = Point(250, 100); 
    point1[1][2] = Point(250, 200); 
    point1[1][3] = Point(150, 200);

    const Point *ppt[2]={point1[0],point1[1]};
    int npts[2] = {3, 4};/* 三角形有三个有效点正方形有四个有效点 */
    Scalar color = Scalar(200, 100, 250);/* 颜色参数 */
    fillPoly(testImage, ppt, npts, 2, color);

4.用于绘制多边形的polylines函数
函数原型:

void polylines(
        cv::Mat& img, 
        const cv::Point** pts, 
        int* npts, 
        int ncontours, // 
        bool isClosed, // 如果是true, 则连接首尾两点
        const cv::Scalar& color, 
        int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
        int shift = 0 // 偏移量
    );

5.用于绘制长方形的rectangle函数
函数原型:

void rectangle(InputOutputArray img,
        Point pt1,
        Point pt2,
        const Scalar& color,
        int thickness=1,
        int lineType=8,
        int shift=0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值