千家信息网

Python OpenCV如何绘制各类几何图形

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章将为大家详细讲解有关Python OpenCV如何绘制各类几何图形,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.绘制直线在OpenCV中,绘制直线需要获
千家信息网最后更新 2025年11月08日Python OpenCV如何绘制各类几何图形

这篇文章将为大家详细讲解有关Python OpenCV如何绘制各类几何图形,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一.绘制直线

在OpenCV中,绘制直线需要获取直线的起点和终点坐标,调用cv2.line()函数实现该功能。该函数原型如下所示:

img = line(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

– img表示需要绘制的那幅图像

– pt1表示线段第一个点的坐标

– pt2表示线段第二个点的坐标

– color表示线条颜色,需要传入一个RGB元组,如(255,0,0)代表蓝色

– thickness表示线条粗细

– lineType表示线条的类型

– shift表示点坐标中的小数位数

下面的代码是绘制一条直线,通过np.zeros()创建一幅黑色图像,接着调用cv2.line()绘制直线,参数包括起始坐标和颜色、粗细。

# -*- coding:utf-8 -*-# By:Eastmountimport cv2import numpy as np#创建黑色图像img = np.zeros((256,256,3), np.uint8)#绘制直线cv2.line(img, (0,0), (255,255), (55,255,155), 5)#显示图像cv2.imshow("line", img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

输出结果如图3-1所示,从坐标(0,0)到(255,255)绘制一条直线,其直线颜色为(55,255,155),粗细为5。

二.绘制矩形

在OpenCV中,绘制矩形通过cv2.rectangle()函数实现,该函数原型如下所示:

img = rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])

– img表示需要绘制的那幅图像

– pt1表示矩形的左上角位置坐标

– pt2表示矩形的右下角位置坐标

– color表示矩形的颜色

– thickness表示边框的粗细

– lineType表示线条的类型

– shift表示点坐标中的小数位数

下面的代码是绘制一个矩形,通过np.zeros()创建一幅黑色图像,接着调用cv2.rectangle()绘制矩形。

# -*- coding:utf-8 -*-# By:Eastmountimport cv2import numpy as np#创建黑色图像img = np.zeros((256,256,3), np.uint8)#绘制矩形cv2.rectangle(img, (20,20), (150,250), (255,0,0), 2)#显示图像cv2.imshow("rectangle", img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

输出结果如图3-2所示,从左上角坐标为(20,20),右下角坐标为(150,250),绘制的矩形颜色为蓝色(255,0,0),粗细为2。

三.绘制圆形

在OpenCV中,绘制矩形通过cv2.rectangle()函数实现,该函数原型如下所示:

img = circle(img, center, radius, color[, thickness[, lineType[, shift]]])

– img表示需要绘制圆的图像

– center表示圆心坐标

– radius表示圆的半径

– color表示圆的颜色

– thickness如果为正值,表示圆轮廓的厚度;负厚度表示要绘制一个填充圆

– lineType表示圆的边界类型

– shift表示中心坐标和半径值中的小数位数

下面代码是绘制一个圆形。

# -*- coding:utf-8 -*-# By:Eastmountimport cv2import numpy as np#创建黑色图像img = np.zeros((256,256,3), np.uint8)#绘制圆形cv2.circle(img, (100,100), 50, (255,255,0), 4)#显示图像cv2.imshow("circle", img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

输出结果如图3-3所示,它在圆形为(100,100)的位置,绘制了一个半径为50,颜色为(255,255,0)、粗细为4的圆。

注意,如果将粗细设置为"-1",则绘制的圆为实心,如图3-4所示。

cv2.circle(img, (100,100), 50, (255,255,0), -1)

四.绘制椭圆

在OpenCV中,绘制椭圆比较复杂,要多输入几个参数,如中心点的位置坐标,长轴和短轴的长度,椭圆沿逆时针方向旋转的角度等。cv2.ellipse()函数原型如下所示:

img = ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]])

– img表示需要绘制椭圆的图像

– center表示椭圆圆心坐标

– axes表示轴的长度(短半径和长半径)

– angle表示偏转的角度(逆时针旋转)

– startAngle表示圆弧起始角的角度(逆时针旋转)

– endAngle表示圆弧终结角的角度(逆时针旋转)

– color表示线条的颜色

– thickness如果为正值,表示椭圆轮廓的厚度;负值表示要绘制一个填充椭圆

– lineType表示圆的边界类型

– shift表示中心坐标和轴值中的小数位数

下面是绘制一个椭圆的代码。

# -*- coding:utf-8 -*-# By:Eastmountimport cv2import numpy as np#创建黑色图像img = np.zeros((256,256,3), np.uint8)#绘制椭圆#椭圆中心(120,100) 长轴和短轴为(100,50)#偏转角度为20#圆弧起始角的角度0 圆弧终结角的角度360#颜色(255,0,255) 线条粗细2cv2.ellipse(img, (120, 100), (100, 50), 20, 0, 360, (255, 0, 255), 2)#显示图像cv2.imshow("ellipse", img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

输出结果如图3-5所示,其椭圆中心为(120,100),长轴为100,短轴为50,偏转角度为20,圆弧起始角的角度为0,圆弧终结角的角度为360,表示一个完整的椭圆。绘制的颜色为(255,0,255),粗细为2。

五.绘制多边形

在OpenCV中,调用cv2.polylines()函数绘制多边形,它需要指定每个顶点的坐标,通过这些点构建多边形,其函数原型如下所示:

img = polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])

– img表示需要绘制的图像

– center表示多边形曲线阵列

– isClosed表示绘制的多边形是否闭合,False表示不闭合

– color表示线条的颜色

– thickness表示线条粗细

– lineType表示边界类型

– shift表示顶点坐标中的小数位数

下面是绘制一个多边形的代码。

# -*- coding:utf-8 -*-# By:Eastmountimport cv2import numpy as np#创建黑色图像img = np.zeros((256,256,3), np.uint8)#绘制多边形pts = np.array([[10,80], [120,80], [120,200], [30,250]])cv2.polylines(img, [pts], True, (255, 255, 255), 5)#显示图像cv2.imshow("ellipse", img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

输出结果如图3-6所示,绘制的多边形为白色的闭合图形。

下面的代码是绘制一个五角星多边形。

# -*- coding:utf-8 -*-# By:Eastmountimport cv2import numpy as np#创建黑色图像img = np.zeros((512,512,3), np.uint8)#绘制多边形pts = np.array([[50, 190], [380, 420], [255, 50], [120, 420], [450, 190]])cv2.polylines(img, [pts], True, (0, 255, 255), 10)#显示图像cv2.imshow("ellipse", img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

输出结果如图3-7所示,它将五个顶点左边分别连接起来,构成了一个黄色的五角星。

六.绘制文字

在OpenCV中,调用cv2.putText()函数添加对应的文字,其函数原型如下所示:

img = putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

– img表示要绘制的图像

– text表示要绘制的文字

– org表示要绘制的位置,图像中文本字符串的左下角

– fontFace表示字体类型,具体查看see cv::HersheyFonts

– fontScale表示字体的大小,计算为比例因子乘以字体特定的基本大小

– color表示字体的颜色

– thickness表示字体的粗细

– lineType表示边界类型

– bottomLeftOrigin如果为真,则图像数据原点位于左下角,否则它在左上角

下面是绘制文字的代码。

# -*- coding:utf-8 -*-# By:Eastmountimport cv2import numpy as np#创建黑色图像img = np.zeros((256,256,3), np.uint8)#绘制文字font = cv2.FONT_HERSHEY_SIMPLEXcv2.putText(img, 'I love Python!I love Huawei!',            (10, 100), font, 0.5, (255, 255, 0), 2)#显示图像cv2.imshow("polylines", img)#等待显示cv2.waitKey(0)cv2.destroyAllWindows()

输出结果如图3-8所示,绘制的文字为"I love Python!I love Huawei!"。

关于"Python OpenCV如何绘制各类几何图形"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

图像 坐标 椭圆 颜色 函数 粗细 多边形 矩形 角度 黑色 直线 线条 如图 代码 类型 结果 utf-8 输出 原型 圆弧 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 宣传网络安全社会服务实践报告 腾讯云轻量服务器网站搭建 长春有名的网络技术咨询有哪些 化合物核磁数据库 吃鸡手游一直显示服务器维护中 淮安大容量服务器服务商 网络技术与应用解答题 数据库安全控制方式有哪些 服务器 权限管理 首都机场网络安全处长 药易通数据库 搭建本地局域网dns服务器 软件开发 所有权的问题 树莓派借助服务器内网穿透 河北c语言软件开发定做 河北家用软件开发市场报价 民国资料在线数据库 数据库怎么清理空间 如何升级ap数据库 宋学之网络安全 两会金融基础数据库 电力行业网络安全培训方案模版 菏泽供热站自动化控制软件开发 计算机与网络技术有用吗 电脑打印服务器什么意思 云计算和网络安全相关的认证 网络安全认证具体包括 上海项目软件开发代理品牌 hp服务器如何重启 软件开发企业税收优惠地方性政策
0