画线、箭头、矩形、圆、文字等(OpenCV案例源码drawing.cpp解读)

有所更改,参数不求完备,但求实用。源码参考D:\source\opencv-3.4.9\samples\cpp\drawing.cpp

复制代码
#include<opencv2\opencv.hpp>
#include<iostream>

using namespace cv;
using namespace std;

int main()
{
    string wndname = "Drawing Demo";//窗体名

    Mat image = Mat::zeros(700, 1000, CV_8UC3); //700行1000列的三维黑色图
    //直线
    //line(image, Point(10, 10), Point(200, 200), Scalar(0,0,255), 3); //图,起始坐标,终点坐标,颜色,粗细
    //箭头
    //arrowedLine(image, Point(10, 10), Point(200, 200), Scalar(0, 0, 255), 3); //图,起始坐标,终点坐标,颜色,粗细
    //矩形
    //rectangle(image, Point(10, 10), Point(200, 200), Scalar(0, 0, 255), 3);//图,左上角坐标,右下角坐标,颜色,粗细
    //十字标记
    //drawMarker(image, Point(200, 200), Scalar(0, 0, 255), MARKER_CROSS, 20,3);//图,坐标,颜色,十字型,大小,粗细
    ////circle(image, Point(200, 200), 50, Scalar(0, 0, 255), 3);//图,圆心,半径,颜色,粗细
    //椭圆
    //ellipse(image, Point(200, 200), Size(50, 100), 0, 0 - 100, 0 + 200, Scalar(0, 0, 255), 3);//图,坐标,宽高,角度,起始角度,终止角度,颜色,粗细
    ////连线、填充的封闭图形
    //Point pt[2][3]; //2行3列的点矩阵,一行一个图形(一行中的前n个点依次连接,n在npt[]中指定)
    //pt[0][0].x = 10;
    //pt[0][0].y = 10;
    //pt[0][1].x = 50;
    //pt[0][1].y = 50;
    //pt[0][2].x = 100;
    //pt[0][2].y = 10;
    //pt[1][0].x = 150;
    //pt[1][0].y = 50;
    //pt[1][1].x = 200;
    //pt[1][1].y = 10;
    //pt[1][2].x = 250;
    //pt[1][2].y = 50;
    //const Point* ppt[2] = { pt[0], pt[1] };
    //int npt[] = { 3, 3 };//每一行从前到后连接的点的个数n
    ////polylines(image, ppt, npt, 2, true, Scalar(0, 0, 255), 3);//图,点矩阵,每行连接的点数,图个数(画出几行),是否闭合,颜色,粗细
    //fillPoly(image, ppt, npt, 2, Scalar(0, 0, 255)); //填充的封闭图形
    //文字
    putText(image, "OpenCV forever!", Point(50, 50), FONT_HERSHEY_TRIPLEX, 1.5, Scalar(0, 0, 255), 2);//图,文本,左下角坐标,字类型,字大小,颜色,粗细
    imshow(wndname, image);

    waitKey();
    return 0;
}
复制代码

 

posted @   夕西行  阅读(700)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示