- 画线
cv2.line(img,(0,0),(511,511),(255,0,0),5)
img为想要绘制图形的那副图像,第二个参数为线条的起点,第三个为终点,第四个为颜色,第五个为线条粗细
2.画圆
cv2.circle(img,(447,63), 63, (0,0,255), -1)#需要指定圆的圆心和半径
- 画矩形
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)#第二个参数为左上角顶点坐标,第三个参数为右下角顶点坐标
- 画椭圆
一个参数是中心点的位置坐标。下一个参数是长轴和短轴的长度。椭圆沿逆时针方向旋转的角度。椭圆弧沿顺时针方向起始的角度和结束的角度,如果是 0 和 360度就是整个椭圆。
cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)
- 画多边形
画多边形,需要指定每个顶点的坐标。用这些点的坐标构建一个大小等于
行数 X1X2 的数组,行数就是点的数目。这个数组的数据类型必须为 int32。
这里画一个黄色的具有四个顶点的多边形。
pts=np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts=pts.reshape((-1,1,2))
6.综合例程
import cv2 as cv
import numpy as np
color = cv.FONT_HERSHEY_COMPLEX
cap = cv.VideoCapture(0)
cap.set(3, 640) #设定的长宽大小
cap.set(4, 480)
while True:
ret, frame = cap.read()
cv.putText(frame, 'zeng chao', (100, 240), color, 2, (255, 255, 255), 2)#add text
cv.circle(frame, (320, 240), 10, (0, 255, 255), -1) #320 240
cv.rectangle(frame, (310, 230), (330, 250), (0, 255, 0), 1)
cv.line(frame, (0, 0), (640, 480), (10, 10, 80), 3)
cv.line(frame, (640, 0), (0, 480), (10, 10, 80), 3)
cv.imshow('image', frame)
if cv.waitKey(1) & 0xFF == ord('q'):
break
while True:
ret, frame = cap.read()
cv.ellipse(frame, (320, 240), (200, 100), 0, 0, 360, (0, 255, 0), 5)
cv.imshow('image', frame)
if cv.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv.destroyAllWindows()