视频采集
相关API
- VideoCapture()
- cap.read(): 返回两个值,第一个参数,如果读到frame,返回 True. 第二个参数为相应的图像帧。
- cap.release()
VideoCapture
cv2.VideoCapture(0)
0 表示自动检测,如果在笔记本上运行,通常为笔记本的摄像头。其他的参数如下图。
视频录制
- VideoWriter
- write
- release
VideoWriter
cv2.VideoWriter()
VideoWriter(filename, fourcc, fps, frameSize[, isColor])
第一个参数是要保存的文件的路径
fourcc 指定编码器
fps 要保存的视频的帧率
frameSize 要保存的文件的画面尺寸, 分辨率
isColor 指示是黑白画面还是彩色的画面
import cv2
#创建VideoWriter为写多媒体文件
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
vw = cv2.VideoWriter('./out.mp4', fourcc, 25, (1280, 720))
#创建窗口
cv2.namedWindow('video', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video', 640, 360)
#获取视频设备/从视频文件中读取视频帧
cap = cv2.VideoCapture(0)
#判断摄像头是否为打开关态
while cap.isOpened():
#从摄像头读视频帧
ret, frame = cap.read()
if ret == True:
#将视频帧在窗口中显示
cv2.imshow('video', frame)
#重新将窗口设备为指定大小
cv2.resizeWindow('video', 640, 360)
#写数据到多媒体文件
vw.write(frame)
#等待键盘事件,如果为q,退出
key = cv2.waitKey(1)
if(key & 0xFF == ord('q')):
break
else:
break
#释放VideoCapture
cap.release()
#释放VideoWriter
vw.release()
#vw.release()
cv2.destroyAllWindows()
补充:待实践
WSL2通过OpenCV调用并展示本机摄像头的RTSP视频流