使用摄像头的基本操作:
1.打开摄像头:
image = cv2.VideoCapture(0) #打开摄像头 0代表了摄像头0。这里还可以填写视频的路径,代表打开视频
2.读取摄像头的内容:
ret,frame = image.read() ret:读取成功为True,不成功为False frame:就是读取到的图片,我们要的就是这个
3.显示图片:cv2.imshow(窗口名,图片)
cv2.imshow("show",frame) #显示图片
if cv2.waitKey(30) & 0xFF == ord('q'): #设置退出键q
break
cv2.show后面一定要加cv2.waitKey(), 这是函数是用来设置你的图片显示 时间的
如何保存为视频呢
1.创建一个视频对象:
fourcc = cv2.VideoWriter_fourcc(*'MP43') #视频编码方式 http://www.fourcc.org/codecs.php
video = cv2.VideoWriter('video.avi',fourcc,25,(640,480)) #创建一个视频对象video
video = cv2.VideoWriter(视频名,编码格式,fps,分辨率)
2.写入图片:
video.write(frame) #frame就是图片
如何得到摄像头的其它属性:
fps = image.get(cv2.CAP_PROP_FPS) #获取摄像头的fps ,其它属性https://docs.opencv.org/3.3.0/d4/d15/group__videoio__flags__base.html#gaeb8dd9c89c10a5c63c139bf7c4f5704d
总体代码:
import cv2
image = cv2.VideoCapture(0) #打开摄像头
frame_count = 0 #记录帧数
img_count = 0 #记录图片个数
fourcc = cv2.VideoWriter_fourcc(*'MP43') #视频编码方式 http://www.fourcc.org/codecs.php
video = cv2.VideoWriter('video.avi',fourcc,25,(640,480)) #创建一个视频对象video
while True:
ret,frame = image.read() #读取摄像头内容
video.write(frame) #向视频对象写入图片
fps = image.get(cv2.CAP_PROP_FPS) #获取摄像头的fps ,其它属性https://docs.opencv.org/3.3.0/d4/d15/group__videoio__flags__base.html#gaeb8dd9c89c10a5c63c139bf7c4f5704d
# print(fps)
cv2.imshow("show",frame) #显示图片
if cv2.waitKey(30) & 0xFF == ord('q'): #设置退出键q
break
#每隔100帧存储一下图片 没什么用
if frame_count%100 ==0:
cv2.imwrite("{}.jpg".format(img_count),frame)
img_count+=1
frame_count+=1
#print(frame_count)
image.release() #退出摄像头对象
cv2.destroyAllWindows() #关闭所有窗口