openCV 实现用 python 画线、画矩形、画圆、画椭圆、画多边形

您所在的位置:网站首页 word用函数参数为left openCV 实现用 python 画线、画矩形、画圆、画椭圆、画多边形

openCV 实现用 python 画线、画矩形、画圆、画椭圆、画多边形

2023-04-13 23:43| 来源: 网络整理| 查看: 265

文章目录 📙 为什么要写这篇文章? 📘 绘图函数 📕 画线 📚 函数: 📆 参数: ✒️ 实操 📒 画矩形 📚 函数: 📆 参数: ✒️ 实操 📗 画圆 📚 函数: 📆 参数 ✒️ 实操 📙画椭圆 📚 函数: 📆 参数: ✒️ 实操 📘 画多边形 ✒️ 实操 📙 为什么要写这篇文章?

🍊在我进行物体检测,或者做一些目标识别的过程中,当我检测到目标时,怎么样来说明我们检测的东西是什么呢?在这个过程中我们就可以采用一些 openCV 的绘图函数来进行标注,比如当我们识别到一个长方形时,我们就可以画一个矩形来把我们识别到的目标给框起来,让它与视频中的其他物体进行区分开来。 请添加图片描述

🍊下面我就一一把这些绘图函数的使用方法给写出来。

❤️点赞 👍 收藏 ⭐留言 📝 都是博主坚持写作、更新高质量博文的最大动力哦!❤️

📘 绘图函数 📕 画线 🍊我们如果要画一根直线,那相对于其他函数来说是最简单的,只需告诉函数这条线的起点和终点,就可以画出一条笔直的直线。 📚 函数: cv2.line(image,starting cordinates,ending cordinates,color,thickness) 📆 参数: ❤️image:需绘制直线的图像 ❤️starting cordinates :直线的起点 ❤️ending cordinates :直线的终点 ❤️color :线的颜色 ❤️thickness :线的粗细像素 ✒️ 实操 🎉下面我们在黑色图像上画一条红色的直线: 🎉代码: import numpy as np import cv2 image = np.zeros((512,512,3),np.uint8) #创建一个黑色面板 cv2.line(image,(0,0),(511,511),(255,0,0),3) #画直线 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) #色彩空间转换 cv2.imshow("绘制直线",image) cv2.waitKey(10000) #延时10000ms,即10s后自动关闭

请添加图片描述

📒 画矩形 🍊要画一个矩形就需要提供这个矩形的左上角顶点和右下角顶点,相当于拉着矩形的两个角进行拉伸。 📚 函数: cv2.rectangle(image,starting vertex,opposit vertex,color,thickness) 📆 参数: ❤️image:需绘制矩形的图像 ❤️starting vertex :矩形的左上角顶点 ❤️opposit vertex :矩形的右下角顶点 ❤️color :线的颜色 ❤️thickness :线的粗细像素,-1表示填充 ✒️ 实操 🎉下面我们分别绘画出厚度为2、-1 进行填充的红色矩形框: 🎉代码: import numpy as np import cv2 image = np.zeros((512,512,3),np.uint8) #创建一个黑色面板 cv2.rectangle(image,(100,100),(400,400),(255,0,0),2) #画大矩形 cv2.rectangle(image,(200,200),(300,300),(255,0,0),-1) #画小矩形 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) #色彩空间转换 cv2.imshow("绘制矩形",image) cv2.waitKey(10000) #延时10000ms,即10s后自动关闭

请添加图片描述

📗 画圆 📚 函数: 🍊要画圆的话,只需要指出所画圆的中心坐标和半径大小即可。 #cv2.cirlce(图像,圆心,半径,线的颜色,圆线的粗细) cv2.cirlce(image,center,radius,color,fill) 📆 参数 ❤️image:需绘制圆的图像 ❤️center:所绘制圆的圆心坐标 ❤️radius:圆的半径 ❤️color:圆的颜色 ❤️fill:线的粗细像素,-1表示填充 ✒️ 实操 🎉 下面我们分别绘画一个圆心为(150,150),(350,350)半径都为 100 的红心圆,分别采用厚度为 2 和 -1 进行填充: 🎉代码: import numpy as np import cv2 image = np.zeros((512,512,3),np.uint8) #创建一个黑色面板 cv2.circle(image,(150,150),100,(255,0,0),2) #画空心圆 cv2.circle(image,(350,350),100,(255,0,0),-1) #画实心圆 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) #色彩空间转换 cv2.imshow("绘制圆",image) cv2.waitKey(10000) #延时10000ms,即10s后自动关闭

请添加图片描述

📙画椭圆 🍊画椭圆比较复杂,需要给出多个参数,但理解后都不难 📚 函数: cv2.ellipse(image, centerCoordinates, axesLength, angle, startAngle, endAngle, color, thickness) 📆 参数: ❤️image:绘制椭圆的图像。 ❤️centerCoordinates:它是椭圆的中心坐标。 ❤️axesLength:它包含两个变量的元组,分别包含椭圆的长轴和短轴的长度 ❤️angle:椭圆旋转角度,以度为单位。 ❤️startAngle:椭圆弧的起始角度,以度为单位。 ❤️endAngle:椭圆弧的终止角度,以度为单位。 ❤️color:它是要绘制的形状边界线的颜色。 ❤️thickness:是形状边界线的粗细像素。-1表示将用指定的颜色填充形状。 ✒️ 实操 🎉接下来我们绘制半个椭圆和旋转45°的整个椭圆: 🎉代码: import numpy as np import cv2 image = np.zeros((512,512,3),np.uint8) #创建一个黑色面板 cv2.ellipse(image,(150,150),(100,50),0,0,180,(255,0,0),-1) #画半个椭圆 cv2.ellipse(image,(350,350),(100,50),45,0,360,(255,0,0),-1) #画45度角的整个椭圆 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) #色彩空间转换 cv2.imshow("绘制椭圆",image) cv2.waitKey(10000) #延时10000ms,即10s后自动关闭

请添加图片描述

📘 画多边形 🍊画多边形的话,就需要指出每个顶点的坐标,用这些点的坐标来构建一个行数为×1,×2的数组,这里的行数就是点的数目。注:这个数组的数据类型必须为 int32 ✒️ 实操 🎉下面我们来画一个红色的、具有五个顶点的多边形: 🎉代码: import numpy as np import cv2 image = np.zeros((512,512,3),np.uint8) #创建一个黑色面板 pts = np.array([[200,100],[200,500],[50,300],[500,200],[500,400]],np.int32) #构建多边形的顶点 cv2.polylines(image,[pts],True,(255,0,0),3) #以折线画图 image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB) #色彩空间转换 cv2.imshow("绘制多边形",image) cv2.waitKey(10000) #延时10000ms,即10s后自动关闭

请添加图片描述

来源:Brson.AI

您可能感兴趣的内容: openCV第二篇 Opencv实现素描的坤坤打篮球 树莓派利用OpenCV的图像跟踪、人脸识别等 YOLOV5源码的详细解读 OpenCV-Python实战(2)——图像与视频文件的处理


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3