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]]])
-
center
:表示要绘制圆的圆心 -
raius
:表示要绘制圆的半径 -
注意:如果将
thickness
设为-1,那么会绘制实心圆
-
- 函数:
-
椭圆
- 函数:
img = ellipse(img, center, axes, angle, startAngle, endAngle,color[, thickness[,lineType[, shift]]])
-
center
:表示要绘制的椭圆圆心 -
axes
:表示轴的长度(短半径(X)和长半径(Y)) -
angle
:表示偏转的角度(逆时针旋转) -
starAngle
:表示圆弧起始的角度(逆时针) -
endAngle
:表示圆弧终止的角度(逆时针) -
注意:起始角度和终止角度不足360°时,椭圆不闭合,画的是圆弧。同画圆,如果将
thickness
设为-1,那么会绘制实心椭圆
-
- 函数:
-
多边形
- 函数:
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
:如果为真,则数据原点位于左下角,否则在左上角
- 函数 :