【OpenCV学习】绘制图形其一

Opencv入门---绘图篇 是 OpenCV 库中用于在图像上绘制直线的函数。它可以在图像上绘制一条直线,指定直线的起始点和结束点。是 OpenCV 中用于在图像上绘制椭圆形的函数。函数用于在任何图像上绘制圆。函数用于在任何图像上绘制矩形, 阅读详情

🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。

前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:OpenCV从入门到放弃 ,一个学习OpenCV的专栏~

专栏文章直链:
【OpenCV学习】Mat数据结构与图像通道的分割与融合
【OpenCV学习】OpenCV的色彩空间
【OpenCV学习】初识OpenCV其二
【OpenCV学习】初识OpenCV人生苦短,我用python

画直线

OpenCV中画直线(实际是画线段)是由两点确定的,给两个点的坐标,就能连成一条直线(线段)。

from cv2 import cv2
import numpy as np
# 创建纯黑的背景图用来画图形
img = np.zeros((480, 640, 3), np.uint8)
# line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
# line(图片, 开始点, 结束点, bgr颜色, 线宽, 线型(1/4/[8]/16), 坐标缩放比例)
cv2.line(img, (20, 60), (620, 360), (0, 255, 0), 10, 8)
cv2.line(img, (20, 80), (620, 380), (0, 0, 255), 5, 8)
cv2.line(img, (20, 100), (620, 400), (0, 0, 255), 5, 2)
cv2.line(img, (20, 120), (620, 420), (255, 0, 0), 10, 8)
cv2.imshow('draw', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

英文参数就是 line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None) ,中文分别代表了:line(图片, 开始点, 结束点, bgr颜色, 线宽, 线型(1/4/[8]/16), 坐标缩放比例) ,其中线形只能是 1/4/8/16,默认是 8,数字越大,线条就越圆润,越没有锯齿。两点之间没有顺序要求。绘制结果就是四条线:

在这里插入图片描述

画矩形

画矩形是根据对角两个点,变成矩形(所以画出来一定是非常正的)。

from cv2 import cv2
import numpy as np
# 创建纯黑的背景图用来画图形
img = np.zeros((480, 640, 3), np.uint8)
# rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
# rectangle(图片, 开始点, 结束点, bgr颜色, 线宽, 线型(1/4/[8]/16), 坐标缩放比例)
cv2.rectangle(img, (20, 60), (620, 420), (0, 255, 0), 10, 8)
cv2.rectangle(img, (40, 80), (600, 400), (0, 0, 255), 5, 8)
cv2.rectangle(img, (60, 100), (580, 380), (0, 0, 255), 5, 2)
cv2.rectangle(img, (80, 120), (560, 360), (255, 0, 0), 10, 8)
cv2.imshow('draw', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

参数和直线是一致的,也同样两点不分先后,绘画结果如下:

在这里插入图片描述

画圆

就是一个点,一个半径。

from cv2 import cv2
import numpy as np
# 创建纯黑的背景图用来画图形
img = np.zeros((480, 640, 3), np.uint8)
# circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
# circle(图片, 中心点, 半径, bgr颜色, 线宽, 线型(1/4/[8]/16), 坐标缩放比例)
cv2.circle(img, (320, 240), 50, (0, 255, 0), 10, 8)
cv2.circle(img, (320, 240), 100, (0, 0, 255), 5, 8)
cv2.circle(img, (320, 240), 150, (0, 0, 255), 5, 2)
cv2.circle(img, (320, 240), 200, (255, 0, 0), 10, 8)
cv2.imshow('draw', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

就前面基础参数稍微变了变,其他都一样,绘制结果:

在这里插入图片描述

画椭圆

刚才的圆是特殊的椭圆,所以圆的很简单,而且只能画整圆。但这画椭圆,不仅能画任意椭圆,还能画任意弧线!

from cv2 import cv2
import numpy as np
# 创建纯黑的背景图用来画图形
img = np.zeros((480, 640, 3), np.uint8)
# ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
# ellipse(图片, 中心点, 长度的一半(元组), 角度, 起始角度, 结束角度, bgr颜色, 线宽, 线型(1/4/[8]/16), 坐标缩放比例)
cv2.ellipse(img, (320, 240), (200, 100), 0, 0, 360, (0, 255, 0), lineType=16)
cv2.ellipse(img, (320, 240), (200, 100), 90, 0, 360, (0, 0, 255), lineType=16)
cv2.ellipse(img, (320, 240), (200, 100), 135, 0, 360, (0, 0, 255), lineType=16)
cv2.ellipse(img, (320, 240), (100, 100), 0, 0, 360, (255, 0, 0), lineType=16)
cv2.ellipse(img, (320, 240), (200, 200), 135, 180, 360, (255, 0, 0), lineType=16)
cv2.imshow('draw', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

长度的一半(元组)是 (半长轴, 半短轴) ,这是椭圆的基本性质。
要注意他是逆时针绘图的!所以初始角度和结束角度要逆时针计算!
运行结果如下:

在这里插入图片描述

OpenCV学习笔记(六):绘制几何图形 主要参考了毛星云等著《OpenCV3编程入门》学习了在OpenCV中绘制一些几何图形,包括线段、圆形、矩形、椭圆形、多边形等。由于代码比较简单,直接上代码了,相信大家应该可以直接看懂。 #include using namespace cv; #define WINDOW_WIDTH 400 void DrawEllipse(Mat img, double angle); //画椭圆形 voi 阅读详情

相关推荐

OpenCV学习4 MAT容器中图形的绘制2

DrawPolygon( )函数的介绍 该函数是OpenCV中绘制多边形的一个函数,调用了fillPoly函数。 总之你得按顺时针画点, **Point rookPoints[1][4];**中 4为你画的顶点总数。 int npt[] = {4};其中的数值 不要超过你画的顶点数。 void DrawPolygon( Mat img ) { int lineType = 8; //创建一些...

梅岭山下的研究僧 283

OpenCV基础(二):绘制直线、绘制几何图形、绘制文字、创建窗口

本文是音视频系列blog的其中一个, 对应的要学习的内容是:使用OpenCV完成绘制直线、绘制几何图形、绘制文字、创建窗口。

分享计算机基础,android,C/C++,音视频等内容 1839

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

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

qq_43199575的博客 1502

OpenCV学习笔记(八)——基本线条操作

本文主要介绍OpenCV中对于图片的操作,包括对于画直线、圆形以及相对的图片

qq_54186956的博客 2984

基于openEuler配置LAMP,部署WordPress

openEuler 基于OpenEular操作系统部署WordPress,必须包含以下内容: OpenEular的安装与基本配置。 基于SSH远程管理方式开展操作。 部署LAMP环境。 部署WordPress软件。 提供个人网站服务,并通过浏览器测试应用。 简要讲授相关知识与原理。 cd /etc/yum.repos.d 欧拉系统安装后,没有配置yum源,我们需要重新配置。 [root@localhost yum.repos.d]# ls -l 总用量 4 -rw-r--r--

Axiayouqiaomu的博客 6081

J1939协议实用指南与J1939数据记录方案

“没错,这是一份SAE J1939简单、实用指南。”—虹科 **开篇:**在这篇介绍中,我们介绍了J1939协议的基本知识,其中包括PGN和SPN。因为这是一篇偏向应用的简介,所以您还将会学习到如何通过DBC文件解码J1939数据、如何记录J1939、典型的应用案例和实用技巧。下面,来了解下这份简单易懂的J1939介绍吧~ 什么是J1939? 简而言之,SAE J1939其实是一套标准,重型车辆ECU间就是按照这套标准在CAN总线上进行通信的。当今大多数车辆都通过CAN(Controller Area Ne

1万+

OpenCV.图形绘制.直线

直线绘制 在OpenCV环境中,直线的绘制依赖于Imgproc.line() 这个方法。该方法的一个构造方法如下: line(img, pt1, pt2, color); 其参数解释如下: mat 表示要在其上绘制线条的图像的Mat对象。 pt1,pt2 表示要绘制线条的点的两个点对象。 scalar 表示圆的颜色的标量对象(BGR)。 当然了,还可以控制直线的粗细,即上述构造方法最后追加一个参数,thickness来表示粗细,厚度值为1. Java代码(JavaFX Controller层) publ

kicinio的博客 4572

【OpenVINO】OpenVINO C# API 常用 API 详解与演示

在本文中我们基于模型推理流程,演示了OpenVINO C# API使用方法,并和OpenVINO C++API进行了对比,展示了OpenVINO C# API与C++API在使用的区别,这也对使用过C++ API的开发者十分友好,上手会十分容易。在本文中我们只展示了基础的模型推理流程代码,也对各个API进行了测试,针对其他比较高级的API方法,我们后续会继续进行测试其他API方法,向各位开发者展示其用法。

grape_yan的博客 1540

opencv学习笔记17-opencv窗口绘制图形标记

【代码】opencv学习笔记17-opencv窗口绘制图形标记。

The_xz的博客 589

Synopsys AXI VIP 从环境搭建到首个验证场景运行

本文详细介绍了Synopsys AXI VIP从环境搭建到首个验证场景运行的全过程,包括VIP安装、示例工程生成、验证环境解析、仿真调试技巧及进阶优化。特别针对AXI协议验证中的常见问题提供了实用解决方案,帮助工程师快速掌握这一SoC验证必备工具。

weixin_29185493的博客 348

SEED-VIG数据集实战:5步搞定驾驶员疲劳检测模型(附Python代码)

本文提供了一份基于SEED-VIG数据集的驾驶员疲劳检测模型实战指南。通过五个核心步骤——数据准备、特征提取、模型训练、优化评估及部署思路,详细讲解了如何利用脑电信号构建分类器,并附有完整的Python代码,帮助开发者快速上手这一智能座舱关键技术。

w1x2y3的博客 263

【OpenCV学习】绘制图形其二

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

user_from_future的博客 1062

告别Qt Creator!VSCode + QMake + MinGW:从零搭建高效Qt开发环境

本文详细介绍了如何使用VSCode替代Qt Creator搭建高效的Qt开发环境,涵盖VSCode配置、QMake与MinGW集成、智能提示优化及构建调试技巧。通过实战案例展示如何提升开发效率30%以上,特别适合中大型Qt项目开发。

weixin_30466039的博客 245

opencv学习笔记之绘制图形

文章目录前言一、绘制图形绘制圆形:circle()函数原型绘制直线:line()函数原型绘制椭圆:ellipse()函数原型绘制矩形:rectangle()函数原型绘制多边形:fillPoly()函数原型文字生成:putText()函数原型 前言 opencv中有关图像绘制的部分 一、绘制图形 Opencv4提供了circle()函数用于绘制图形 绘制圆形:circle()函数原型 void circle(InputOutputArray img, Point center, int radius, co

weixin_45775703的博客 1983

TC3xx系列LMU与SPR实战:将关键算法从Flash搬移至PSPR提升5倍执行效率

在实际电机控制项目中,通过将FOC算法全部迁移到PSPR,我们不仅将执行时间从56μs降至11μs,还将最坏情况下的时间偏差控制在±0.3μs以内。实测数据:在TC397上执行Flash中的32位浮点矩阵乘法,平均每条指令需要8.7个周期,而同样的代码在PSPR中仅需1.2个周期。传统开发中,工程师往往将所有代码放在Flash中运行,这相当于让F1赛车在乡村公路上行驶。迁移后不仅平均执行时间缩短,更重要的是时间抖动从±15%降低到±2%以内,这对闭环控制系统至关重要。不是所有代码都适合迁移到PSPR。

weixin_31421613的博客 299

腾讯Android开发面试指南与参考答案

腾讯深圳元宝高级Android开发工程师岗位要求3-5年Android开发经验,熟悉Kotlin和性能优化,具备架构设计能力。岗位职责包括元宝Android客户端研发、稳定性优化及跨团队协作。面试重点考察Kotlin、Jetpack Compose、多线程编程等核心技术,3轮线上面试流程较快。无AI项目经验也可应聘,需突出展示Android架构设计、性能调优等实战能力。建议准备Compose开发、算法等加分项案例。

郑伟强dev的专栏 1136

Opencv学习日志之二 图形绘制,

Opencv学习日志之二 图形绘制,简单图形的绘制(线)API 简单图形的绘制(线) API 1.line() 2.rectangle()

zkisama的博客 415

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

学习OpenCV2——绘制基本图形及文字

本文简述了OpenCV中的绘图及文本函数

Markala的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【OpenCV学习】(四)图形绘制

【OpenCV学习】(四)图形绘制 背景 使用OpenCV进行图形绘制是一种必备的技能,在图像的任务中,不管是图像检测还是图像识别,我们都需要通过绘制图形和绘制文字对处理的结果进行说明,本篇就详细介绍下图形的绘制; 一、画线 line(图像,起始点,终点,颜色,线宽,线形):一般只需要前面四个参数即可; 代码案例: cv2.line(img, (20, 100), (20, 500), (0,0,255)) 画出了一条Y方向上的红色线段; 二、画矩形 这个相对来说是应用最多的一种方法了,往往在检测项目中返

weixin_40620310的博客 2349

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C++联合OpenCV学习——图形绘制

OpenCV基本图形的绘制 本次主题主要分为以下五点 绘制直线Line函数 绘制椭圆Ellipse函数 绘制矩形Rectangle函数 绘制圆形Circle函数 绘制多边形FillPoly函数 自定义函数DrawEllipse()函数的代码 #define WINDOW_WIDTH 600 void DrawEllopse(Mat Image,double angle){ int thickness = 2; int lineType = 8; ellipse(Image,Point(600/

Joker_D_K的博客 6683

【学习OpenCV4】几何图形的绘制方法

本文介绍了使用C++与OpenCV4完成矩形、圆形、直线、椭圆的绘制方法,重点总结了OpenCV内置函数(如rectangle()、circle()、line()、ellipse())的定义以及各参数的作用,并给出了示例程序作为参考。此外本文还总结了多边形的绘制方法,包括多边形边框的绘制函数polylines()、多边形填充函数fillPoly()、绘制多个多边形的函数drawContours()等。

个人博客 850

【深度学习】OpenCV——基本图形绘制:矩形、文字、圆、直线、椭圆、多边形

OpenCV的基本图形绘制,主要掌握矩形和文字的绘制。 """ Python 绘制文字""" import cv2 import numpy as np img = cv2.imread(r"../Image/SpongeBobSquarePants.jpg") print(img.shape) """ 绘制直线 """ cv2.line(img,(0,0), (100,100), (110,110,110),thickness=2) """ 绘制圆 thickness=-1 为填充 """ c.

阳一子的博客 470

opencv学习笔记(三)-绘制基本图形及文字

学习OpenCV2——绘制基本图形及文字

chaihuimin的专栏 432

Android和OpenCV的学习绘制几何图形

几何图形绘制主要使用ImgProc类里的line、rectangle、polylines、circle、ellipse等函数,也可以使用putText函数绘制文字。图形绘制函数一般在APP中起到画面标注的功能。

站在巨人的肩膀上前行 4685

OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()

OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse() #include <opencv2/opencv.hpp> using namespace cv; using namespace std; #define WINDOW_NAME1 "【绘制图1】" //为窗口标题定义的宏 #define WI...

Leon_Chen的博客 765

学习Opencv+Python之获取鼠标绘制图形

学习Opencv+Python之获取鼠标绘制图形 1、鼠标相应的相关操作 在Opencv中,将鼠标键位的点击操作称为“事件(event)”,常见的这些事件有: EVENT_MOUSEMOVE 0 滑动 EVENT_LBUTTONDOWN 1 左键点击 EVENT_RBUTTONDOWN 2 右键点击 EVENT_MBUTTONDOWN 3 中键点击 EVENT_LBUTTONUP 4 左键放开 EVENT_RBUTTONUP 5 右键放开 EVENT_M

weixin_42744921的博客 1358
上一篇: 一文让你学会做C语言变量指针题
下一篇: 【OpenCV学习】绘制图形其二
user_from_future
博客等级 码龄5年 4067粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值