OpenCV(八)—————图形绘制与填充(C++)

OpenCV与Eigen (C++)【学习备忘】 C++ OpenCV 阅读详情

 

点、线、矩形、圆形、椭圆、多边形、绘制与填充、文字;

随机绘制:随机函数RNG,绘制随机形状

比较详细的API中参数的介绍:学习OpenCV2——绘制基本图形及文字

 

 

 

  • 线

利用line()API。

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

using namespace cv;
using namespace std;


int main(int argc,char** argv)
{
    Mat canvas = Mat::zeros(Size(512,512),CV_8UC3);
    //namedWindow("input",WINDOW_AUTOSIZE);
    //imshow("input", canvas);

    //  相关绘制API演示
    //  绘制所在画布,线段的第一个点,线段结束的点,颜色,线宽,线段渲染方式,
    line(canvas,Point(10,10),Point(400,400),Scalar(0,0,255),1,LINE_8);
    imshow("resulit",canvas);

    waitKey(0);
    destroyAllWindows();
    return 0;
}

结果:

                             

  • 矩形

利用rect()和rectangle()API。

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

using namespace cv;
using namespace std;


int main(int argc,char** argv)
{
    Mat canvas = Mat::zeros(Size(512,512),CV_8UC3);
    //namedWindow("input",WINDOW_AUTOSIZE);
    //imshow("input", canvas);

    //  相关绘制API演示
    //  绘制所在画布,线段的第一个点,线段结束的点,颜色,线宽,线段渲染方式,
    line(canvas,Point(10,10),Point(400,400),Scalar(0,0,255),1,LINE_8);
    imshow("resulit",canvas);
    //  绘制矩形
    //  定义矩形大小(左上角的点,宽,高)
    Rect rect(100,100,200,200);
    //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
    rectangle(canvas,rect,Scalar(255,0,0),1,8);
    imshow("resulit",canvas);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

结果:

                            

  • 圆

利用circle()API

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

using namespace cv;
using namespace std;


int main(int argc,char** argv)
{
    Mat canvas = Mat::zeros(Size(512,512),CV_8UC3);
    //namedWindow("input",WINDOW_AUTOSIZE);
    //imshow("input", canvas);

    //  相关绘制API演示
    //  绘制所在画布,线段的第一个点,线段结束的点,颜色,线宽,线段渲染方式,
    line(canvas,Point(10,10),Point(400,400),Scalar(0,0,255),1,LINE_8);
    imshow("resulit",canvas);
    //  绘制矩形
    //  定义矩形大小(左上角的点,宽,高)
    Rect rect(100,100,200,200);
    //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
    rectangle(canvas,rect,Scalar(255,0,0),1,8);
    imshow("resulit",canvas);
    //  绘制圆(绘制所在画布,圆心,半径,颜色,线宽,渲染方式)
    circle(canvas,Point(256,256),100,Scalar(0,255,0),1,8);
    imshow("resulit",canvas);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

结果:

                             

  • 椭圆

利用RotatedRect制作旋转图形以及ellipse()椭圆生成API来生成椭圆.

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

using namespace cv;
using namespace std;


int main(int argc,char** argv)
{
    Mat canvas = Mat::zeros(Size(512,512),CV_8UC3);
    //namedWindow("input",WINDOW_AUTOSIZE);
    //imshow("input", canvas);

    //  绘制线
    //  绘制所在画布,线段的第一个点,线段结束的点,颜色,线宽,线段渲染方式,
    line(canvas,Point(10,10),Point(400,400),Scalar(0,0,255),1,LINE_8);
    imshow("resulit",canvas);

    //  绘制矩形
    //  定义矩形大小(左上角的点,宽,高)
    Rect rect(100,100,200,200);
    //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
    rectangle(canvas,rect,Scalar(255,0,0),1,8);
    imshow("resulit",canvas);

    //  绘制圆(绘制所在画布,圆心,半径,颜色,线宽,渲染方式)
    circle(canvas,Point(256,256),100,Scalar(0,255,0),1,8);

    //  绘制椭圆
    RotatedRect rrt;
    //  圆心
    rrt.center = Point2f(256,256);
    //  角度
    rrt.angle = 45.0;
    //  尺寸
    rrt.size = Size(100,200);
    //  绘制(所在花布,旋转的rectangle,颜色,线宽,渲染方式)
    //  若将线宽变成-1(<时0),将会变成填充的形式;线宽>0时是绘制的方式
    ellipse(canvas,rrt,Scalar(0,255,255),2,8);
    imshow("resulit",canvas);

    waitKey(0);
    destroyAllWindows();
    return 0;
}

结果:

    

  • 绘制随机线条

利用RNG函数.

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

using namespace cv;
using namespace std;


int main(int argc,char** argv)
{
    Mat canvas = Mat::zeros(Size(512,512),CV_8UC3);
    //namedWindow("input",WINDOW_AUTOSIZE);
    //imshow("input", canvas);

    //  绘制线
    //  绘制所在画布,线段的第一个点,线段结束的点,颜色,线宽,线段渲染方式,
    line(canvas,Point(10,10),Point(400,400),Scalar(0,0,255),1,LINE_8);
    imshow("resulit",canvas);

    //  绘制矩形
    //  定义矩形大小(左上角的点,宽,高)
    Rect rect(100,100,200,200);
    //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
    rectangle(canvas,rect,Scalar(255,0,0),1,8);
    imshow("resulit",canvas);

    //  绘制圆(绘制所在画布,圆心,半径,颜色,线宽,渲染方式)
    circle(canvas,Point(256,256),100,Scalar(0,255,0),1,8);

    //  绘制椭圆
    RotatedRect rrt;
    //  圆心
    rrt.center = Point2f(256,256);
    //  角度
    rrt.angle = 45.0;
    //  尺寸
    rrt.size = Size(100,200);
    //  绘制(所在花布,旋转的rectangle,颜色,线宽,渲染方式)
    //  若将线宽变成-1(<时0),将会变成填充的形式;线宽>0时是绘制的方式
    ellipse(canvas,rrt,Scalar(0,255,255),2,8);
    imshow("resulit",canvas);

    //  丰富绘制
    //  绘制线条
    Mat image = Mat::zeros(Size(512,512),CV_8UC3);
    int x1 = 0,y1 = 0;
    int x2 = 0,y2 = 0;
    //  随机
    RNG rng(12345);
    while(true)
    {
        //  定义随机的起始坐标和终点坐标
        x1 = (int)rng.uniform(0,512);
        x2 = (int)rng.uniform(0,512);
        y1 = (int)rng.uniform(0,512);
        y2 = (int)rng.uniform(0,512);
        //  线(所在画布:image,随机起点,随机终点,随机颜色,线宽,渲染方式);
        line(image,Point(x1,y1),Point(y1,y2),Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)),1,LINE_8);
        imshow("image",image);
        //  waitKey按任意键返回(停顿10ms)
        char c = waitKey(10);
        //  按Esc键暂停
        if(c == 27)
            break;
    }

    imwrite("../result.jpg",image);

    waitKey(0);
    destroyAllWindows();
    return 0;
}

结果:

  • 绘制随机矩形

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

using namespace cv;
using namespace std;


int main(int argc,char** argv)
{
    Mat canvas = Mat::zeros(Size(512,512),CV_8UC3);
    //namedWindow("input",WINDOW_AUTOSIZE);
    //imshow("input", canvas);

    //  绘制线
    //  绘制所在画布,线段的第一个点,线段结束的点,颜色,线宽,线段渲染方式,
    line(canvas,Point(10,10),Point(400,400),Scalar(0,0,255),1,LINE_8);
    imshow("resulit",canvas);

    //  绘制矩形
    //  定义矩形大小(左上角的点,宽,高)
    Rect rect(100,100,200,200);
    //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
    rectangle(canvas,rect,Scalar(255,0,0),1,8);
    imshow("resulit",canvas);

    //  绘制圆(绘制所在画布,圆心,半径,颜色,线宽,渲染方式)
    circle(canvas,Point(256,256),100,Scalar(0,255,0),1,8);

    //  绘制椭圆
    RotatedRect rrt;
    //  圆心
    rrt.center = Point2f(256,256);
    //  角度
    rrt.angle = 45.0;
    //  尺寸
    rrt.size = Size(100,200);
    //  绘制(所在花布,旋转的rectangle,颜色,线宽,渲染方式)
    //  若将线宽变成-1(<时0),将会变成填充的形式;线宽>0时是绘制的方式
    ellipse(canvas,rrt,Scalar(0,255,255),2,8);
    imshow("resulit",canvas);

    //  丰富绘制
    //  绘制线条
    Mat image = Mat::zeros(Size(800,800),CV_8UC3);
    int x1 = 0,y1 = 0;
    int x2 = 0,y2 = 0;
    //  随机
    RNG rng(12345);
    while(true)
    {
        //  定义随机的左上角坐标和左下角坐标
        x1 = (int)rng.uniform(0,512);
        x2 = (int)rng.uniform(0,512);
        y1 = (int)rng.uniform(0,512);
        y2 = (int)rng.uniform(0,512);
        //  确定宽和高
        int w = abs(x2-x1);
        int h = abs(y2-y1);
        rect.x = x1;
        rect.y = y1;
        rect.width = w;
        rect.height = h;
        //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
        rectangle(image,rect,Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)),1,8);
        imshow("image",image);
        //  waitKey按任意键返回(停顿10ms)
        char c = waitKey(10);
        //  按Esc键暂停
        if(c == 27)
            break;
    }

    imwrite("../result.jpg",image);

    waitKey(0);
    destroyAllWindows();
    return 0;
}

结果:

如果只想要每次出现只出现一个矩形,可以在前面加上:

        //  只出现一个矩形
        image = Scalar(0,0,0);

完整代码为:

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

using namespace cv;
using namespace std;


int main(int argc,char** argv)
{
    Mat canvas = Mat::zeros(Size(512,512),CV_8UC3);
    //namedWindow("input",WINDOW_AUTOSIZE);
    //imshow("input", canvas);

    //  绘制线
    //  绘制所在画布,线段的第一个点,线段结束的点,颜色,线宽,线段渲染方式,
    line(canvas,Point(10,10),Point(400,400),Scalar(0,0,255),1,LINE_8);
    imshow("resulit",canvas);

    //  绘制矩形
    //  定义矩形大小(左上角的点,宽,高)
    Rect rect(100,100,200,200);
    //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
    rectangle(canvas,rect,Scalar(255,0,0),1,8);
    imshow("resulit",canvas);

    //  绘制圆(绘制所在画布,圆心,半径,颜色,线宽,渲染方式)
    circle(canvas,Point(256,256),100,Scalar(0,255,0),1,8);

    //  绘制椭圆
    RotatedRect rrt;
    //  圆心
    rrt.center = Point2f(256,256);
    //  角度
    rrt.angle = 45.0;
    //  尺寸
    rrt.size = Size(100,200);
    //  绘制(所在花布,旋转的rectangle,颜色,线宽,渲染方式)
    //  若将线宽变成-1(<时0),将会变成填充的形式;线宽>0时是绘制的方式
    ellipse(canvas,rrt,Scalar(0,255,255),2,8);
    imshow("resulit",canvas);

    //  丰富绘制
    //  绘制线条
    Mat image = Mat::zeros(Size(512,512),CV_8UC3);
    int x1 = 0,y1 = 0;
    int x2 = 0,y2 = 0;
    //  随机
    RNG rng(12345);
    while(true)
    {
        //  定义随机的左上角坐标和左下角坐标
        x1 = (int)rng.uniform(0,512);
        x2 = (int)rng.uniform(0,512);
        y1 = (int)rng.uniform(0,512);
        y2 = (int)rng.uniform(0,512);
        //  确定宽和高
        int w = abs(x2-x1);
        int h = abs(y2-y1);
        rect.x = x1;
        rect.y = y1;
        rect.width = w;
        rect.height = h;
        //  只出现一个矩形
        image = Scalar(0,0,0);
        //  绘制(绘制所在画布,矩形位置和大小,颜色,线宽,渲染方式)
        rectangle(image,rect,Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)),1,8);
        imshow("image",image);
        //  waitKey按任意键返回(停顿10ms)
        char c = waitKey(10);
        //  按Esc键暂停
        if(c == 27)
            break;
    }

    imwrite("../result.jpg",image);

    waitKey(0);
    destroyAllWindows();
    return 0;
}

出现结果非常酷:

实际上,在运行窗口中,这些随机矩形出现消失的非常快.整体看起来很酷.

  • 文字

//  文字(所在画布,打印文字,位置,字体类型,字体大小,字体颜色,加粗,渲染通道)
putText(canvas,"hello opencv!",Point(100,50),FONT_HERSHEY_SIMPLEX,1.0,Scalar(255,0,255),2,8);
imwrite("../result.jpg",canvas);

结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【OpenCV】图形绘制函数的用法(Drawing Functions)(C++) 1.Circles void circle(Mat&amp; img, Point center, int radius, const Scalar&amp; color, int thickness=1, int lineType=8, int shift=0) Parameters: img – Image where the circle is drawn. cen... 阅读详情

相关推荐

OpenCV 项目开发实战--实现填充图像中的孔( Python / C++ ) 代码实现

详细介绍OpenCV 项目开发实战--实现填充图像中的孔( Python / C++ ) 代码实现

DT程序员的博客 783

OpenCV图像内轮廓填-孔洞填充

图像内轮廓填充通常称为孔洞填充,主要用于目标提取。//test #include "stdafx.h" #include "cxcore.h" #include "cv.h" #include "highgui.h" // 内轮廓填充 // 参数: // 1. pBinary: 输入二值图像,单通道,位深IPL_DEPTH_8U。 // 2. dAreaThre

Augusdi的专栏 1万+

使用C/C++包装填充图像 - 详细教程及源代码

最后,在步骤5中,我们使用cv::imshow函数显示填充后的图像,并使用cv::imwrite函数将其保存到磁盘上的输出图像文件中。边界填充是将图像的边界像素填充为指定的像素值,而区域填充是将图像中的特定区域填充为指定的像素值。该函数接受输入图像、填充大小、填充类型(在本例中为常数填充)和填充颜色作为参数,并返回填充后的图像。在本例中,我们选择了10个像素的填充大小,并将填充颜色设置为白色(255, 255, 255)。您可以根据需要调整填充参数,如填充大小和填充颜色,以适应不同的应用场景。

AlianBlank的博客 347

OpenCV对图片中的RotatedRect进行填充

函数名:full_rotated_rect 函数参数: image输入图像,rect希望在图像中填充的RotatedRect,color填充的颜色 主要的思路是:先找到RotatedRect的四个顶点,然后画出外框。再利用四个顶点找出其中平行两边的所有点,对相应的两个点进行连接。 void full_rotated_rect(Mat &image, const RotatedRect &re

WizardtoH 3301

【opencv-c++】cv::fillPoly填充多边形

函数cv::fillPoly填充由几个多边形轮廓包围的区域。该函数可以填充复杂的区域,例如,带有孔洞的区域,具有自交点的轮廓(它们的一些部分),等等。这是一个重载的成员函数,为了方便而提供。它与上述函数的区别仅仅在于它接受的参数。cv::fillPoly函数可以对多边形进行填充,支持不规则区域的填充。以下示例,使用cv::fillPoly通过重载的函数原型2。以下示例,使用cv::fillPoly的函数原型1。填充由一个或多个多边形所包围的区域。

jn10010537的博客 2577

OpenCV4(C++)—— 几何图形的绘制

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。

qq_43199575的博客 1502

【OpenCV学习】绘制图形其二

绘制图形其二 画多边形 填充多边形 添加文字

user_from_future的博客 1062

OpenCV(C++)创建图片绘制图形(矩形、圆、文字、线段等等)

OpenCV 能够在图像上绘制各种几何形状、文本和曲线,以及对图像进行调整、裁剪和旋转等操作,这些功能都为图像的分析和处理提供了很大的帮助。

1572

Ubuntu系统VScode实现opencv(c++)多边形的绘制与填充

在使用 C++ 进行图形处理时,OpenCV(Open Source Computer Vision Library)是一个功能强大、用途广泛的开源计算机视觉与图像处理库。OpenCV 提供了丰富的图像绘制与操作函数,能够高效实现图像中的基本图形绘制任务,包括线段、圆形、多边形等的绘制与填充,非常适合进行多边形绘制与填充的实践和开发。在 C++ 中引入 OpenCV 并实现多边形的绘制与填充,OpenCV 中的函数如。以下是fillPoly。用于绘制多边形轮廓,pts需要一个点集;

2402_84165995的博客 476

SecureCRT串口连接保姆级教程:从驱动安装到波特率设置(附常见问题解决)

本文提供SecureCRT串口连接的保姆级教程,涵盖从USB转串口驱动安装、端口识别到波特率等核心参数设置的完整流程。针对连接失败、乱码、键盘输入无响应等高频问题,给出了深度排查与解决方案,帮助网络与嵌入式开发新手快速掌握串口调试技能。

weixin_29281941的博客 432

Cursor+Playwright MCP实战:如何用自然语言一键生成UI自动化测试脚本

本文探讨了如何利用Cursor与Playwright MCP实现自然语言驱动的UI自动化测试脚本生成。通过智能IDE与浏览器自动化协议的结合,开发者可以高效创建稳定的测试脚本,显著提升测试效率与维护性。重点介绍了MCP架构的优势、项目结构最佳实践及团队协作规范,为自动化测试带来革命性改进。

k8l9m0n的博客 440

OpenCV-绘制图形

OpenCV绘制图形,绘制文本

小白的学习笔记 1065

UNITY3D万人同屏,Dots万人同屏解决方案_类萌宠宠之战

UNITY3D弹幕游戏开发,万人同屏解决方案

6469

Python-opencv学习第十六课:多边形填充与绘制

Python-opencv学习第十六课:多边形填充与绘制 文章目录Python-opencv学习第十六课:多边形填充与绘制一、学习部分二、代码部分1.引入库2.定义图形绘制函数和创建多个点,并进行绘制与填充3.完整代码三、运行结果总结 一、学习部分 记录笔者学习Python-opencv第十六课:多边形绘制,代码资料来源于网络贾老师视频。 二、代码部分 1.引入库 代码如下: import cv2 as cv import numpy as np 2.定义图形绘制函数和创建多个点,并进行绘制与填充 代码

qq_45825952的博客 2972

【人工智能】国产开源大模型聊天 AquilaChat 快速开始上手实战&效果评测

Aquila语言大模型在技术上继承了GPT-3、LLaMA等的架构设计优点,替换了一批更高效的底层算子实现、重新设计实现了中英双语的tokenizer,升级了BMTrain并行训练方法,在Aquila的训练过程中实现了比Magtron+DeepSpeed zero-2将近8倍的训练效率。Aquila语言大模型是在中英文高质量语料基础上从0开始训练的,通过数据质量的控制、多种训练的优化方法,实现在更小的数据集、更短的训练时间,获得比其它开源模型更优的性能。

AI天才研究院 2万+

智驾芯片&软件分层&测试

智能驾驶相关的芯片,软件分层,测试相关内容

天赐好车的博客 436

Opencv(C++)笔记--绘制直线、矩形、椭圆、圆、填充多边形、绘制字体和随机产生坐标点

绘制字体,传入的参数依次为:背景图、要绘制的字体内容、文本框左下角坐标、字体、尺寸因子(值越大字体越大)、颜色、线宽和线型;绘制直线,传入的参数依次为:背景图、两个点的坐标、直线的颜色、直线的线宽和直线的线型;填充多边形,传入的参数依次为:背景图、点的坐标、点的个数、线宽、颜色和线型;绘制圆,传入的参数依次为:背景图、中心点、半径、颜色、线宽和线型;绘制矩形,传入的参数依次为:背景图、矩形框、颜色、线宽和线型;6--cv::putText()绘制字体。1--cv::line()绘制直线。

牵一只蜗牛去散步 4907

适航规章、标准,书籍资料下载汇总(增加DO-297 IMA)

从事IMA平台适航工作的朋友看过来,DO-297英文版PDF可以下载了!更新日志:2024-9-28:初版。2024-10-21:增加DO-330英文版PDF下载,后台回复关键词”330“获取下载链接。2024-10-30:增加DO-160G中文版(非机翻)和英文版PDF下载,后台回复关键词”160“获取下载链接。2024-11-10:增加DO-297英文版PDF下载,后台回复关键词”297“获取下载链接。以下是一些收集到的适航相关的资料,分享给大家。

qq_41854911的博客 1577

十一、OpenCV中图形的绘制

本文主要介绍OpenCV中图形的绘制。

TechNomad的博客 1038

YOLO-World:从入门到实战的多模态目标检测全指南

想象一下,你给模型一张“公园”的图片,再输入文字“红色的郁金香”,它能直接在图中框出所有红色郁金香的位置——这就是多模态目标检测:结合图像视觉信息和文本语义信息,同时完成“是什么”(分类)和“在哪里”(定位)的任务。传统目标检测(如YOLOv5、YOLOv8)只能识别预定义的类别(比如训练时学过“猫”“狗”),但多模态目标检测摆脱了“类别预定义”的限制,只要文本能描述,它就能检测,这就是“开放词汇检测(Open-Vocabulary Detection)”的魅力。

know_F0727的博客 204

同步调相机启动与并网控制技术方案

同步调相机起动与并网控制技术方案采用背靠背变流器系统,通过静止变频器(SFC)策略实现无原动机驱动的同步电机从静止到同步转速的平稳起动。方案详细阐述了硬件自检、模块初始化、转子位置检测等关键环节,重点解决启动转矩为零、冲击电流大等挑战。系统基于STM32或C2000系列控制器,包含网侧/机侧变流器、检测保护单元及通信接口,通过励磁脉冲和电压响应分析实现高精度转子初始定位,为后续并网提供必要条件。代码级实现涵盖了ADC自检、数字IO验证及通信端口测试等核心功能。

huanghm88的专栏 305

C++下OpenCV学习笔记----基本图形的绘制

C++下OpenCV学习笔记 ----基本图形的绘制 一.绘制直线:line函数 二.绘制椭圆:ellipse函数 三.绘制圆:circle函数 四.绘制填充多边形:fillPoly函数 五.绘制多边形:polyline函数 六.绘制矩形:rectangle函数 七.添加文字:putText函数

X_To_Y的博客 4809

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Ubuntu系统VScode实现opencv(c++)几何图形的绘制

rectangle函数中的5为线宽,该参数如果小于0,一般为-1,那么绘制的矩形为填充效果,大于0极为设置线宽。这些函数常用于图像标注、目标检测可视化、图形学习等任务。:首先,需要创建画布,也可以直接在一张图片上画。在 C++ 的 OpenCV 中进行。剩下的图形可自己实现,当作练习;

2402_84165995的博客 388

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

opencv中图形绘制和文字 (c++)day3

#include&lt;opencv2\opencv.hpp&gt; #include&lt;iostream&gt; using namespace cv; Mat src; void myLines() { Point p1=Point(20,30); Point p2; p2.x=300; p2.y=300; Scalar color=Scalar(0,0,255); li...

suntingsheng123的专栏 394

OpenCV实战:使用鼠标绘制图形

本文主要是介绍在OpenCV中如何使用鼠标绘制图形。

u011186532的专栏 600

OpenCV 基础绘图实战:用 line、ellipse、rectangle、circle 与 fillPoly 绘制原子和城堡图形

本篇技术指南围绕 OpenCV 官方《Basic Drawing》基础绘图教程展开,讲解如何用 `line()`、`ellipse()`、`rectangle()`、`circle()` 和 `fillPoly()` 在纯黑色画布上绘制"原子"与"城堡(国际象棋车)"两组图形。通过本教程,你将掌握 OpenCV 中最常用的几何图元绘制 API 的参数语义(坐标、BGR 颜色、线宽与线型、填充模式)

gitblog_00217的博客 1091
上一篇: OpenCV(七)—————像素信息统计(C++)
下一篇: OpenCV(九)—————图像通道合并与分离(C++)
野指针呀
博客等级 码龄10年 50粉丝 128原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值