C++ opencv 绘制:直线、矩形、圆、实心圆、多边形、文字、

该代码示例展示了如何用OpenCV库在C++中创建和操作图像,包括绘制直线、矩形、圆形,填充多边形以及添加文字到图像,并最终保存结果。
摘要由CSDN通过智能技术生成

完整演示:

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


int main()
{   


    // 创建一个黑色图像,参数分别是图像大小、图像类型,CV_8UC3表示8位无符号整数,3通道
    cv::Mat image = cv::Mat::zeros(cv::Size(600, 600), CV_8UC3);

    // 绘制直线,参数分别是图像、起点、终点、颜色(蓝绿红)、线宽、线型
    cv::line(image, cv::Point(50, 50), cv::Point(350, 250), cv::Scalar(255, 0, 0), 2, cv::LINE_AA);
    // 绘制矩形,参数分别是图像、左上角、右下角、颜色、线宽、线型
    cv::rectangle(image, cv::Point(50, 50), cv::Point(350, 250), cv::Scalar(0, 255, 0), 2, cv::LINE_AA);
    // 绘制圆形,参数分别是图像、圆心、半径、颜色、线宽、线型
    cv::circle(image, cv::Point(200, 150), 100, cv::Scalar(255, 0, 0), 2, cv::LINE_AA);
    // 实心
    cv::circle(image, cv::Point(200, 150), 80, cv::Scalar(255, 0, 0), -1, cv::LINE_AA);

    // ================== 使用vector绘制多边形 ==================
    std::vector<cv::Point> points_v;
    // // 随机生成5个点
    // for (int i = 0; i < 5; i++)
    // {
    // points_v.push_back(cv::Point(rand() % 600, rand() % 600));

    // }
    points_v.push_back(cv::Point(50, 50));
    points_v.push_back(cv::Point(100, 50));
    points_v.push_back(cv::Point(100, 100));
    points_v.push_back(cv::Point(50, 100));

    // 绘制多边形,参数分别是图像、顶点数组、是否闭合、颜色、线宽、线型
    cv::polylines(image, points_v, true, cv::Scalar(255, 0, 0), 2, 8, 0);


    // ================== 绘制文字 ==================
    // 参数分别是图像、文字、文字位置、字体、字体大小、颜色、线宽、线型
    cv::putText(image, "Hello World!", cv::Point(400, 50), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(255, 255, 255), 2, 8, 0);

    // 保存图像
    cv::imwrite("./gray_image.jpg", image);
    
    // // imshow显示图像
    // cv::imshow("opencv", image);  

    // // 等待按键
    // cv::waitKey(0);  

    return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

默执_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值