绘制简单的几何图形、显示文字
(一)绘制直线和矩形
img = np.zeros([512, 512, 3])
# line函数用来画直线,第一个参数可以理解为画布矩阵,
# 第二个参数pt1是直线的起始位置,第三个参数pt2是直线的终止位置,
# 第四个参数color用来控制直线的颜色,第五个参数thickness表示的是线条的厚度或者说是宽度
cv2.line(img, (255, 512), (255, 0), (255, 0, 255), 9)# cv2.rectangle函数用来画矩形,第一个参数为需要传入的画布矩阵,
# 第二个参数pt1是矩形的左上角位置坐标,第三个参数pt2是矩形右下角的位置坐标,
# 第四个参数color用来控制矩形的颜色,第五个参数thickness表示的是边框的厚度或者是宽度
cv2.rectangle(img, (150, 150), (350, 350), (255, 255, 0), 2)
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
(二)绘制圆和椭圆
圆和椭圆与直线和矩形的函数类似,只是在参数上有一些改变
# 第二个参数指的是圆心,第三个参数指的是圆心
cv2.circle(img, (255, 255), 50, (255, 0, 255), 9)
cv2.circle(img, (250, 245), 9, (255, 0, 0), 36)# 第二个参数是椭圆的中心点,第三个参数axes指的是短半径和长半径,
# 第四个参数指的是逆时针旋转的角度,
# 第五个参数指的是逆时针开始画图的角度,第六个指的是逆时针结束画图的角度
# 四五六参数若加上符号,表示的反方向,即顺时针方向
cv2.ellipse(img, (255, 255), (170, 70), 20, 0, 270, (255, 255, 0), 2)
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
(三)绘制多边形
pts = np.array([[50, 190], [380, 420], [255, 50], [120, 420], [450, 190]])
# 第三个参数指的是是否封口,这里注意第二个参数外面必须再加一层中括号
cv2.polylines(img, [pts], True, (255, 255, 0), 15)
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我画了一个五角星,好看吧。
(四)显示文字
目前看来,不能显示汉字,能显示英文字母。
font = cv2.FONT_HERSHEY_SIMPLEX
# 第三个参数为显示文字的起始位置,第五个参数表示的是文字的大小
cv2.putText(img, 'wen huai yi shi xin', (10, 255), font, 1.6, (255, 255, 0), 2)
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()