一、从相机读取视频
通常情况下,我们必须用摄像机捕捉实时画面。让我们从摄像头捕捉一段视频(我使用的是我笔记本电脑内置的网络摄像头) ,将其转换成灰度视频并显示出来。
要捕获视频,你需要创建一个 VideoCapture 对象。它的参数可以是设备索引或视频文件的名称。设备索引就是指定哪个摄像头的数字。你可以通过传递1来选择第二个相机,以此类推。在此之后,我们需要通过逐帧捕获将视频保存为画面。但是在最后,不要忘记释放被捕获的俘虏。
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
print("无法打开相机!")
exit()
while True:
# 逐帧捕获
ret, frame = cap.read()
# 如果正确读取帧,ret为True
if not ret:
print("未正确读取视频!")
break
# 我们在框架上的操作到这里
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
# 显示结果帧
cv.imshow('视频', gray)
if cv.waitKey(1) == ord('q'):
break
# 完成所有操作后,释放捕获器
cap.release()
cv.destroyAllWindows()
cap.read() 返回布尔值( True / False )。如果正确读取了帧,它将为 True 。因此,你可以通过检查此返回值来检查视频的结尾。