一. 读取并播放视频
- 1.创建一个VideoCapture对象
使用 cv2.VideoCapture() 进行操作
参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头,参数设置为0表示调用本机内置摄像头;参数设置为视频文件路径表示打开视频文件。
- 2.按帧读取视频
使用 ret,frame = cap.read() 来进行按帧读取视频
ret,frame是获cap.read()函数的两个返回值。其中ret是一个布尔值(True/False ),如果帧读取是正确的则为True,如果文件读取到结尾,它的返回值就为False;frame就是每一帧的图像。
- 3.使用函数 cv2.imshow() 显示图像
- 4.使用 cv2.waiKey() 设置适当的持续时间
如果设置值太小视频就会播放的非常快,如果设置值太大就会播放的很慢(你可以使用这种方法
控制视频的播放速度)。通常情况下 25 毫秒就可以了。
- 5.释放资源
使用 cap.release() 函数释放摄像头,使用 cv2.destroyAllWindows() 函数关闭所有图像窗口
import cv2cap = cv2.VideoCapture(r'D:Gee.mp4')while True: ret,frame = cap.read() cv2.imshow('frame',frame) # 若25毫秒内按下q键,则退出视频显示 if cv2.waitKey(25) == ord('q'): breakcap.release()cv2.destroyAllWindows()
在VS Code上运行上述代码,显示界面如下图所示
二. 调用摄像头采集图像
上文讲的是视频文件的读取,而如果要调用摄像头进行视频采集,只需将上述代码中 cv2.VideoCapture() 的参数换为0就可以了,表示调用本机内置摄像头。代码如下所示。
import cv2cap = cv2.VideoCapture(0)while True: ret,frame = cap.read() cv2.imshow('frame',frame) # 若25毫秒内按下q键,则退出视频显示 if cv2.waitKey(25) == ord('q'): breakcap.release()cv2.destroyAllWindows()
在VS Code上运行上述代码,显示界面如下图所示