opencv基础图形的绘制

简介: opencv基础图形的绘制

前言

本篇文章来讲解使用opencv绘制基础图形。

一、直线绘制

在使用OpenCV绘制直线、圆形和矩形时,可以使用不同的函数来实现。下面我将为您介绍如何使用OpenCV绘制直线、圆形和矩形。

绘制直线:

要在图像上绘制直线,可以使用line函数。基本语法如下:

void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);

img:表示输入图像。可以是一个Mat对象。

pt1:表示直线的起始点,可以通过Point(x, y)指定坐标。

pt2:表示直线的结束点,也可以通过Point(x, y)指定坐标。

color:表示绘制直线的颜色,可以是一个Scalar对象或者通过Scalar(B, G, R)指定颜色的BGR值。

thickness:表示直线的粗细,默认值为1。

lineType:表示直线的类型,有不同的线型可选,默认值为LINE_8。

shift:表示坐标点的小数位数。

下面是一个示例代码,演示如何绘制一条蓝色直线:

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
    Mat image = Mat::zeros(Size(500, 500), CV_8UC3);
    Point pt1(100, 100);
    Point pt2(400, 400);
    Scalar color(255, 0, 0); // 蓝色
    line(image, pt1, pt2, color, 2);
    imshow("Image", image);
    waitKey(0);
    return 0;
}

运行效果:

我们首先创建一个空的图像 image,大小为500x500像素,并且使用CV_8UC3类型,表示每个像素有3个通道(BGR)。然后,我们定义起点 pt1 和终点 pt2,并指定要绘制的直线颜色为蓝色。最后,使用line函数在图像上绘制直线,并显示图像。

二、圆形绘制

绘制圆形:

要在图像上绘制圆形,可以使用circle函数。基本语法如下:

void circle(InputOutputArray img, Point center, int radius, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);

参数说明:

img:表示输入图像。可以是一个Mat对象。

center:表示圆心的坐标,可以通过Point(x, y)指定。

radius:表示圆的半径。

color:表示绘制圆的颜色,可以是一个Scalar对象或者通过Scalar(B, G, R)指定颜色的BGR值。

thickness:表示绘制圆的线宽,默认值为1。

lineType:表示线型,默认值为LINE_8。

shift:表示坐标点的小数位数。

下面是一个示例代码,演示如何在图像中绘制一个半径为100的红色实心圆:

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
    Mat image = Mat::zeros(Size(500, 500), CV_8UC3);
    Point center(250, 250);
    int radius = 100;
    Scalar color(0, 0, 255); // 红色
    circle(image, center, radius, color, -1);
    imshow("Image", image);
    waitKey(0);
    return 0;
}

运行效果:

我们创建一个空的图像 image 并指定其大小。然后,我们定义圆心 center 和半径 radius,并将绘制圆的颜色设置为红色。最后,使用circle函数在图像上绘制实心圆,并显示图像。

三、矩形绘制

绘制矩形:

要在图像上绘制矩形,可以使用rectangle函数。基本语法如下:

void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);

参数说明:

img:表示输入图像。可以是一个Mat对象。

pt1:表示矩形的一个顶点,可以通过Point(x, y)指定。

pt2:表示矩形的对角顶点。

color:表示绘制矩形的颜色,可以是一个Scalar对象或者通过Scalar(B, G, R)指定颜色的BGR值。

thickness:表示矩形的线宽,默认值为1。

lineType:表示线型,默认值为LINE_8。

shift:表示坐标点的小数位数。

下面是一个示例代码,演示如何在图像中绘制一个蓝色矩形:

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
    Mat image = Mat::zeros(Size(500, 500), CV_8UC3);
    Point pt1(100, 100);
    Point pt2(400, 400);
    Scalar color(255, 0, 0); // 蓝色
    rectangle(image, pt1, pt2, color, 2);
    imshow("Image", image);
    waitKey(0);
    return 0;
}

运行效果:

在上述示例中,我们创建一个空的图像 image 并指定其大小。然后,我们定义矩形的一对对角顶点 pt1 和 pt2,并将绘制矩形的颜色设置为蓝色。最后,使用rectangle函数在图像上绘制矩形,并显示图像。

总结

本篇文章就讲解到这里,下篇文章进行opencv摄像头和MP4文件的读取。


相关文章
|
1月前
|
计算机视觉 索引 Python
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
openCV 3计算机视觉 Python语言实现 笔记__第二章 处理文件、摄像头和图形用户界面
|
2月前
|
前端开发 API 计算机视觉
opencv绘制基本图形,在图片上添加文字
opencv绘制基本图形,在图片上添加文字
|
2月前
|
存储 计算机视觉 C++
OpenCV—HighGUI图形用户界面初步
OpenCV—HighGUI图形用户界面初步
|
2月前
|
数据采集 数据挖掘 计算机视觉
最全OpenCV-Python实战(3)——OpenCV中绘制图形与文本,面试官必问问题及答案
最全OpenCV-Python实战(3)——OpenCV中绘制图形与文本,面试官必问问题及答案
|
2月前
|
计算机视觉 Python 数据可视化
【Python Opencv】Opencv画图形
【Python Opencv】Opencv画图形
151 1
【Python Opencv】Opencv画图形
|
2月前
|
机器学习/深度学习 算法 计算机视觉
python入门(六) opencv的安装,图片操作,绘制文字图形,视频操作
python入门(六) opencv的安装,图片操作,绘制文字图形,视频操作
|
2月前
|
计算机视觉 Python
OpenCV中文字的绘制与动态绘制图形讲解与实战(附Python源码)
OpenCV中文字的绘制与动态绘制图形讲解与实战(附Python源码)
76 0
|
11月前
|
API 计算机视觉
【OpenCV图像处理3】绘制基本图形
【OpenCV图像处理3】绘制基本图形
82 0
|
API 计算机视觉 索引
OpenCV_02 图像的基本操作:图像IO+绘制图形+像素点+属性+图像通道+色彩空间的改变
注意:在调用显示图像的API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来。
90 0
|
计算机视觉 存储
带你读《OpenCV 4计算机视觉项目实战 (原书第2版)》之三:学习图形用户界面
本书首先介绍OpenCV的入门知识及安装,然后介绍OpenCV的基础知识,包括用户界面、矩阵运算、滤波器和直方图等,之后介绍复杂的计算机视觉算法,包括对象分割和分类、视频监控、对象跟踪等,后探讨对象跟踪、文本识别、机器学习和人脸检测等高级技术。阅读本书之后,你将掌握常用和新的计算机视觉技术,并学会从零开始构建各类OpenCV项目。