Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenCV画直线,画圆,画椭圆,画矩形,绘制文字

OpenCV画直线,画圆,画椭圆,画矩形,绘制文字

作者头像
zy010101
发布于 2020-03-18 10:06:20
发布于 2020-03-18 10:06:20
4.1K00
代码可运行
举报
文章被收录于专栏:程序员程序员
运行总次数:0
代码可运行

这个没什么可说的,就是需要知道OpenCV里画这些东西的API是什么就可以了。直接上代码,具体注释看代码即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

void drawLine(Mat &image);
void drawRectangle(Mat& image);
void drawEllipse(Mat& image);
void drawCricle(Mat& image);

int main()
{
	Mat MyBG = imread("C:/Users/zhou_/Desktop/1.png");
	
	drawLine(MyBG);
	drawRectangle(MyBG);
	drawEllipse(MyBG);
	drawCricle(MyBG);

	//MyBG是背景图,"666"是画上去的文字,Point表示画的起点
	//FONT_HERSHEY_SIMPLEX是字体,2表示粗细
	//Scalar是颜色,3是代表字体的线条宽度
	putText(MyBG, "666", Point(200, 50), \
		FONT_HERSHEY_SIMPLEX, 2, Scalar(255, 0, 0),\
		3, LINE_AA);
	
	
	imshow("BG", MyBG);

	waitKey(0);
	return 0;
}

void drawLine(Mat& image)
{
	//Point是点的数据结构
	Point p1(0, 0);
	Point p2(533, 300);
	Scalar color = Scalar(255, 0, 0);
	//image表示在哪儿画,p1,p2是线段的端点,color是线的颜色,3代表线的粗细,LINE_AA表示反走样
	line(image, p1, p2, color,3,LINE_AA);
}

void drawRectangle(Mat& image)
{
	//在坐标(100,100)处,画一个长和宽都是100的矩形
	Rect rect = Rect(100, 100, 100, 100);
	Scalar color = Scalar(0, 255, 0);

	//rect表示要画的矩形形状如何。
	rectangle(image, rect, color, 1, LINE_AA);
}

void drawEllipse(Mat& image)
{
	Scalar color = Scalar(0, 0, 255);
	//image表示在哪儿画,Point表示椭圆的中心,Size表示椭圆的长短半轴的长度
	//第一个0表示从0位置开始画
	//第二个0和360表示画的椭圆的范围是0-360°
	ellipse(image, Point(image.cols / 2, image.rows / 2),\
		Size(image.cols / 2, image.rows / 4),\
		0, 0, 360, color, 2, LINE_AA);
}

void drawCricle(Mat& image)
{
	Point center(image.cols / 2, image.rows / 2);
	int r = 100;
	Scalar color = Scalar(0, 0, 0);
	//center表示圆心,r是圆的半径
	circle(image, center, r, color, 3, LINE_AA);
}

运行效果如下所示:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【OpenCV入门之十五】随心所欲绘制想要形状
画圆画点都是使用circle()函数来画,点就是圆,我们平常所说的圆只不过是半径大一点而已。
小白学视觉
2019/05/30
1.9K0
OpenCV 绘制图形
[【OpenCV3图像处理】绘图功能总结(直线,矩形,圆,椭圆,多边形,文字)]https://blog.csdn.net/u011574296/article/details/73332523
AI异构
2020/07/29
6250
OpenCV 绘制图形
Opencv-python画图基础知识
相关函数介绍 1. Point 该数据结构表示了由其图像坐标 和 指定的2D点。可定义为: Point pt; pt.x = 10; pt.y = 8; 或者 Point pt = Point(10, 8); 2. Scalar 表示了具有4个元素的数组。次类型在OpenCV中被大量用于传递像素值。 本节中,我们将进一步用它来表示RGB颜色值(三个参数)。如果用不到第四个参数,则无需定义。 我们来看个例子,如果给出以下颜色参数表达式: Scalar( a, b, c ) 那么定义的RGB颜色值为:Red =
hbbliyong
2018/06/13
1.3K0
OpenCv+Qt5.12.2:文字检测与文本识别
好久没有进行一些相关的更新的了,去年一共更新了四篇,最近一直在做音视频相关的直播服务,又是重新学习积攒经验的一个过程。去年疫情也比较严重,等到解封,又一直很忙,最近又算有了一些时间,所以想着可以做一些更新了,又拿起了 OpenCV,做一些相关更新了。其实代码相关的工作,在上一篇 OpenCV-摄像头相关的完成之后已经做完了,只是一直没有写相关博客,这次先给做完。
何其不顾四月天
2023/03/19
1.8K0
OpenCV中高效的像素遍历方法,写出工程级像素遍历代码
初次接触OpenCV的开发者,必须过的第一道坎就是学会如何遍历访问Mat对象中每个像素,实现像素级别的图像操作,这个是最级别的编程技能,但是不同的像素遍历方法效率有云泥之别,相差特别大,甚至可能成为算法运行的瓶颈之一,因此找到一种速度快的遍历方法对大图像处理是很关键的。在开始寻找高效遍历方法之前,先来了解一下Mat对象的数据组织形式与像素块数据的存储方式,Mat对象由两个部分组成,元数据头部加像素数据块部分,图示如下:
OpenCV学堂
2019/07/05
5.6K1
万字长文,值得收藏/参考的OpenCV C++基础代码
一位友好人士做的B站OpenCV4.x C++ 快速入门30讲视频课程的笔记总结!我只能点赞了!
OpenCV学堂
2021/08/06
1.2K0
OpenCV DNN模块教程(四)Mask-RCNN实例分割
本文为OpenCV DNN模块官方教程的扩展,介绍如何使用OpenCV加载TensorFlow Object Detection API训练的模型做实例分割,以Mask-RCNN为例来检测缺陷。TensorFlow Object Detection API的github链接地址如下:https://github.com/tensorflow/models/tree/master/research/object_detection
Color Space
2020/10/29
1.1K0
OpenCV DNN模块教程(四)Mask-RCNN实例分割
OpenCV系列(18)|三角剖分
应用:人脸检测的核心技术 代码: #include <opencv2/imgproc.hpp> #include <opencv2/highgui.hpp> #include <iostream> #include <fstream> using namespace cv; using namespace std; static void help() { cout << "\nThis program demonstrates iterative construction of\n"
用户9831583
2022/06/16
6720
OpenCV系列(18)|三角剖分
【C++】OpenCV:YOLO目标检测介绍及实现示例
我们都知道,yolo这些深度学习检测算法都是在python下用pytorch或tf框架这些训练的,训练得到的是pt或者weight权重文件,这些是算法开发人员做的事情,如何让算法的检测精度更高、速度更快。
DevFrank
2024/07/24
1.5K0
OpenCV DNN模块官方教程(二)YoloV4目标检测实例
OpenCV DNN模块官方教程地址如下,可以查看各个对应的使用方法https://docs.opencv.org/4.4.0/d2/d58/tutorial_table_of_content_dnn.html
Color Space
2020/09/23
3.9K0
OpenCV DNN模块官方教程(二)YoloV4目标检测实例
ubuntu16.0.4 opencv4.0.0 yolov3测试
硬件信息 8 Intel® Core™ i7-4790 CPU @ 3.60GHz
用户1148525
2019/05/26
6700
OpenCV图像处理笔记(一):图片基本操作
==如果有报无法找到opencv_world343.dll的Error,请把C:\opencv\build\x64\vc14\bin下的opencv_world343.dll文件复制到C:\Windows 目录下即可==
MiChong
2020/09/24
1.7K0
OpenCV图像处理笔记(一):图片基本操作
C++ OpenCV视频操作之图像输出文字
当我们视频分析时可能图像中需要有一个文字说明,OpenCV中本身也有这个API,我们就来看看OpenCV中的图像文字输出。
Vaccae
2019/07/25
4.3K0
OpenCV4.8+YOLOv8对象检测C++推理演示
自从YOLOv5更新成7.0版本,YOLOv8推出以后,OpenCV4.6以前的版本都无法再加载导出ONNX格式模型了,只有OpenCV4.7以上版本才可以支持最新版本YOLOv5与YOLOv8模型的推理部署。首先看一下最新版本的YOLOv5与YOLOv8的输入与输出格式:
OpenCV学堂
2023/09/27
2.3K0
OpenCV4.8+YOLOv8对象检测C++推理演示
【C++】OpenCV:车道线检测原理与实现示例
车道线检测是自动驾驶和驾驶辅助系统中的关键任务之一。OpenCV是一个广泛使用的计算机视觉库,可以用来进行车道线检测。
DevFrank
2024/07/24
5570
OpenCV源码系列|目标跟踪
应用场景:跟踪摄像头中的目标物体,目标物体由鼠标选出,跟踪搜索框的大小和方向搜跟踪物体的变化而变换,目前仅支持单一物体跟踪。
用户9831583
2022/06/16
4790
深度学习:驾驶行为分析
程序功能简介: 使用yolo训练,OpenCV调用、实现打哈欠、手机、抽烟、系安全带,口罩检测。
DS小龙哥
2022/01/17
7910
深度学习:驾驶行为分析
图像加文字与运行时间——opencv
本文转自:https://blog.csdn.net/you_big_father/article/details/90604390
vv彭
2020/12/16
1K0
【目标跟踪】奇葩需求如何处理(二)
昨天突然接到一个需求,识别井盖且判断是否有井盖或无井盖。而且时间紧急,比赛突然加的需求,只给一天时间。一天时间用深度学习方法大概率是来不及了,采集数据标注数据训练模型都要花时间。
读书猿
2024/03/22
1680
【目标跟踪】奇葩需求如何处理(二)
OpenCV4.5.x DNN + YOLOv5 C++推理
点击上方蓝字关注我们 微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 引言 昨天修改了个OpenCV DNN支持部署YOLOv5,6.1版本的Python代码,今天重新转换为C++代码了!貌似帧率比之前涨了点!说明C++的确是比Python快点! 点击这里可以查看之前的推文: OpenCV4.5.4 直接支持YOLOv5 6.1版本模型推理 OpenC4 C++部署YOLOv5 我把测试代码封装成一个工具类了,可以直接用,方便大家(生手党)直接部署调用!保重一行代码都不用再写了! 0
OpenCV学堂
2022/03/10
3K0
相关推荐
【OpenCV入门之十五】随心所欲绘制想要形状
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验