python opencv 绘制圆、矩形、椭圆、多边形以及文字

3 阅读1分钟
import  cv2
import  numpy as np
# ellipse(img,中心点,长宽的一半,角度,从哪个角度开始,到哪个角度结束,...)
# 角度  长方形的旋转角度

img = np.zeros((480,640,3),np.uint8)

# 画线 坐标(x,y)
# FILLED-"INE 4//!<
# 4-connectedline4INE 88,1/
# !A8-connectedline=16
# //!< antialiasedLINE AA =line
# 斜线
cv2.line(img,(0,0),(640,480),(255,0,255),5,14)
# 直线
cv2.line(img,(10,0),(10,480),(255,0,255),5,16)
# 矩形
cv2.rectangle(img,(20,10),(200,100),(255,255,0),-1)
# 圆
cv2.circle(img,(320,240),100,(0,0,255))
cv2.circle(img,(320,240),5,(0,0,255),-1)
# 椭圆 度是按照顺时针计算的 0度是从左侧开始计算的
cv2.ellipse(img,(320,240),(100,50),90,0,360,(0,0,255),5,16)
cv2.ellipse(img,(320,240),(100,50),0,0,360,(0,0,255),5,16)
cv2.ellipse(img,(320,240),(100,50),90,0,90,(0,0,255),-1)
cv2.ellipse(img,(320,240),(100,50),90,45,90,(0,0,255),-1)
# cv2.ellipse(img,(320,240),(100,50),0,0,360,(0,0,255),5,16)

# 画多边形
# polylines(img,点集,是否闭环,颜色,
# ...点集必须是32位的
pts = np.array([(300,10),(150,100),(450,100)],np.int32)
cv2.polylines(img,[pts],True,(0,0,255))
cv2.fillPoly(img,[pts],(255,0,0)) # 填充多边形

# 画文字
# putText(img,字符串,启始点,字体,字号)
cv2.putText(img,"Hello World",(30,400),cv2.FONT_HERSHEY_PLAIN,5,(255,255,255))
cv2.imshow("draw",img)
cv2.waitKey(0)