openCV内置了几何图形绘制函数,通过简单的操作就可以绘制几何图形。例如,可以绘制直线、矩形、圆形、椭圆、多边形、文字等,分别对应函数cv2.line()
、cv2.rectangle()
、cv2.circle()
、cv2.ellipse()
、cv2.polylines()
、cv2.putText()
。
下面来详细看一下这些函数的用法:
-
直线
-
函数:img = line(img, pt1, pt2, color[, thickness[,lineType[, shift]]])
img
:表示要绘制的图像
pt1
:表示绘制直线的起始点坐标
pt2
:表示绘制直线的终止点坐标
color
:表示直线的颜色,需要传入BGR元组
thickness
:表示绘制直线的宽度
lineType
:表示绘制直线的类型
shift
:表示点坐标系中的小数位数
-
实际应用:画一条对角线的直线
import cv2
import numpy as np
img = np.zeros((256,256,3),np.uint8)
cv2.line(img,(0,0),(255,255),(255,255,255),5)
cv2.imshow("draw line", img)
cv2.waitKey(0)
-
矩形
- 函数:
img = rectangle(img, pt1, pt2, color[, thickness[,lineType[, shift]]])
pt1
:表示绘制的矩形的左上角
pt2
:表示绘制的矩形的右下角
-
圆形
- 函数:
img = circle(img, center, radius, colorr[, thickness[,lineType[, shift]]])
-
椭圆
- 函数:
img = ellipse(img, center, axes, angle, startAngle, endAngle,color[, thickness[,lineType[, shift]]])
-
多边形
- 函数:
img = polylines(img, pts, isClosed, color[, thickness[,lineType[, shift]]])
pts
:表示绘制多边形的曲线阵列
isClosed
:表示是否闭合,True表示闭合
-
文字
- 函数 :
img = putText(img, text, org, fontFace, fontScale, color[, thickness[,lineType[, bottomLeftOrigin]]])
text
:表示要绘制的文字
org
:表示要绘制的位置,文字的左下角
fontFace
:表示字体类型
fontScale
:表示字体大小
bottomLeftOrigin
:如果为真,则数据原点位于左下角,否则在左上角