在我进行物体检测,或者做一些目标识别的过程中,当我检测到目标时,怎么样来说明我们检测的东西是什么呢?在这个过程中我们就可以采用一些 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表示填充
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表示填充
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表示将用指定的颜色填充形状。
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后自动关闭
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后自动关闭