目标:学习读取视频,显示视频和保存视频。学习从相机捕捉并显示它。你将学习以下功能:cv.VideoCapture(),cv.VideoWriter().
(1)从相机中读取视频
通常情况下,我们必须用摄像机捕捉实时画面。提供了一个非常简单的界面。让我们从摄像头捕捉一段视频,将其显示出来。
要捕获视频,你需要创建一个VideoCapture对象。它的参数可以是设备索引或视频文件的名称。设备索引就是指定哪个摄像头的数字。正常情况下,一个摄像头会被连接,所以简单地传0(或-1)。你可以通过传递1来选择第二个相机,以此类推。在此之后,你可以逐帧捕获。但是在最后,不要忘记释放VideoCapture对象,并销毁播放窗口。
读取摄像头,并播放视频的代码如下:
#读取和播放摄像头import cv2cap = cv2.VideoCapture(0) #生成VideoCapture对象实例,捕获摄像头if not cap.isOpened(): #未能正确捕获摄像头,退出 print("Cannot open camera") exit()while True: #无限循环,读取和播放摄像头 ret, frame = cap.read() #逐帧读取 # 如果正确读取帧,ret为True if not ret: #如果未能正确读取帧,退出 print("Can't receive frame (stream end?). Exiting ...") break # 此处是在帧frame上的操作 # 显示结果帧 cv2.imshow('myvideo', frame) if cv2.waitKey(1) & 0xFF== 27: #按ESC退出,&0xFF确保获得正确的8位ASCII码(低8位) breakcap.release() #完成所有操作后,释放VideoCapture对象cv2.destroyAllWindows() #销毁视频播放窗口
捕获的摄像头视频播放窗口如下: