读取摄像头

cap = cv2.VideoCapture(文件/摄像头代号)

  • 0代表这本地的摄像头,如果外接摄像头也可以更换成其他代号,比如1
  • 也可以是文件名,注意后缀

获取摄像头图片

flag,frame = cap.read()

  • cap.read()会返回两个值,一个是标记,一个是该帧的图片

释放资源

cap.release()

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import cv2
cap = cv2.VideoCapture(0) # 摄像头
count = 0 # 计数器,后面捕获图片的时候更改名字,防止图片发生覆盖
while cap.isOpened():
# 读每一帧 flag返回标记,frame即为该帧图像
flag,frame = cap.read()
if not flag:
break
else:
cv2.imshow("img",frame)
key = cv2.waitKey(1) # 0的话需要一直等,1的话代表1毫秒,等待时间非常短
if key == ord("q"):
break
elif key == ord("s"):
cv2.imwrite("test_{}.png".format(count),frame)
count+=1
else:
pass
cap.release()
cv2.destroyAllWindows()

视频数据

和读取摄像头一样,需要更改的是cv2.VideoCapture(“路径”)