将工程下一个文件夹的所有视频源按顺序读取出来,并截取各视频中同一时间点的帧,将各帧以图像的形式按顺序储存好,方便后续处理。
使用python编写,用到opencv库和os库。
关键函数:
1、cv2.VideoCapture():读取视频文件
2、cv2.isOpened():判断视频文件是否读取成功
3、vc.get(cv2.CAP_PROP_FPS):获取视频的帧率,即一秒钟该视频播放多少帧
4、vc.get(cv2.CAP_PROP_FRAME_WIDTH)),vc.get(cv2.CAP_PROP_FRAME_HEIGHT):视频的大小
5、vc.get(cv2.CAP_PROP_FRAME_COUNT):视频的总时间,有多少帧
# 标定后的拼接的预处理,获取各视频源,截取同一时间点的帧,并将这些图像按顺序存储好
import cv2
import os.path
filepath = './videos'
pathDir = os.listdir(filepath)
a = 1
for allDir in pathDir:
videopath = r'./videos/'+allDir
print("videospath:", videopath)
vc = cv2.VideoCapture(videopath)
c = 1
if vc.isOpened():
success, frame = vc.read()
print(True)
else:
success = False
print(False)
fps = vc.get(cv2.CAP_PROP_FPS)
size = (int(vc.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(vc.get(cv2.CAP_PROP_FRAME_HEIGHT)))
times = vc.get(cv2.CAP_PROP_FRAME_COUNT)
print("fps", fps)
print("size", size)
print("times", times)
while success:
success, frame = vc.read()
params = []
params.append(1)
if (c == 500):
cv2.imwrite('./calibrated/'+str(a)+'.jpg', frame, params)
a = a + 1
break
c = c + 1
cv2.waitKey(1)
vc.release()
这个程序是读取视频中的第五百帧,并储存在电脑中。