【opencv】示例-drawing.cpp画线、箭头、矩形、多边形、椭圆、圆形以及在图像上渲染文本并通过循环实现动态绘制效果...

这段C++代码展示了如何使用OpenCV库进行线、箭头、矩形、多边形、椭圆、圆形的绘制,以及在图像上添加文字,演示了OpenCV强大的图像处理和图形输出功能。

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

e3a523c0ced20cf4f4fc14b5c2b812ed.png

#include "opencv2/core.hpp" // 引入opencv2核心头文件
#include "opencv2/imgproc.hpp" // 引入opencv2图像处理头文件
#include "opencv2/highgui.hpp" // 引入opencv2高级GUI(head-up display)头文件
#include <stdio.h> // 引入标准输入输出头文件


using namespace cv; // 使用cv命名空间


// 帮助函数,用于打印程序说明
static void help(char** argv)
{
    printf("\nThis program demonstrates OpenCV drawing and text output functions.\n"
    "Usage:\n"
    "   %s\n", argv[0]);
}


// 函数生成随机颜色,用于绘图
static Scalar randomColor(RNG& rng)
{
    int icolor = (unsigned)rng; // 生成随机数作为颜色值
    return Scalar(icolor&255, (icolor>>8)&255, (icolor>>16)&255); // 返回一个Scalar, 表示BGR颜色
}


// 主函数
int main(int /* argc */, char** argv) // main函数,笔误argv用于命令行参数
{
    help(argv); // 调用help函数显示帮助
    char wndname[] = "Drawing Demo"; // 窗口名
    const int NUMBER = 100; // 定义数量常量
    const int DELAY = 5; // 定义延时常量
    int lineType = LINE_AA; // 定义线类型为抗锯齿线条,可以改为LINE_8查看非抗锯齿效果
    int i, width = 1000, height = 700; // 定义循环变量i以及窗口宽高
    int x1 = -width/2, x2 = width*3/2, y1 = -height/2, y2 = height*3/2; // 定义坐标范围
    RNG rng(0xFFFFFFFF); // 创建随机数生成器


    Mat image = Mat::zeros(height, width, CV_8UC3); // 创建一个黑色图像
    imshow(wndname, image); // 显示图像
    waitKey(DELAY); // 等待键盘输入


    // 绘制随机线条和箭头
    for (i = 0; i < NUMBER * 2; i++)
    {
        Point pt1, pt2; // 定义两点
        pt1.x = rng.uniform(x1, x2); // 随机生成第一个点的x坐标
        p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值