目标
- 学习阅读视频,显示视频和保存视频。
- 学习从相机捕捉并显示它。
- 您将学习以下函数:cv.VideoCapture(),cv.VideoWriter()
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
while True:
# Capture frame-by-frame,return a tuple type ,ret is flag(true indicate
# read success ,false failed. frame is frame data if read success)
ret, frame = cap.read()
# if frame is read correctly ret is True
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
# Our operations on the frame come here
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
# Display the resulting frame
cv.imshow('frame', gray)
#wait 1ms read keyboard value if you press 'q' ,break the circulation
if cv.waitKey(1) == ord('q'):
break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()
cap.read() 返回一个bool值,你可以通过这个返回值来判断视频是否读完
有时cap可能没有被成功初始化,这时候你读取就会出错,所以读取之前要判断cap.isOpened(),如果是false,可以使用cap.open()打开
您还可以使用cap.get(propId)方法访问此视频的某些功能,其中propId是0到18之间的数字。每个数字表示视频的属性(如果它适用于该视频)。其中一些值可以使用cap.set(propId,value)进行修改。
例如,我可以通过和检查框架宽度和高度。它默认给我640x480。但我想将其修改为320x240。只需使用
cap.get(cv.CAP_PROP_FRAME_WIDTH)
cap.get(cv.CAP_PROP_FRAME_HEIGHT)
ret = cap.set(cv.CAP_PROP_FRAME_WIDTH,320)
ret = cap.set(cv.CAP_PROP_FRAME_HEIGHT,240)