赞
踩
代码:
- class VideoIter(object):
- def __init__(self, video_name):
- self.cap = cv2.VideoCapture(video_name)
- self.size = [int(self.cap.get(cv2.CAP_PROP_FRAME_HEIGHT)),
- int(self.cap.get(cv2.CAP_PROP_FRAME_WIDTH))]
- self.fps = self.cap.get(cv2.CAP_PROP_FPS)
- assert self.cap.isOpened(), FileNotFoundError
- self.num_frame = self.cap.get(cv2.CAP_PROP_FRAME_COUNT)
- self.index = -1
-
- def __iter__(self):
- return self
-
- def __next__(self):
- # while True:
- if self.index < self.num_frame:
- ret, frame = self.cap.read()
- if ret:
- self.index += 1
- return frame
- else:
- raise ValueError
- else:
- raise StopIteration
-
- video_iter = VideoIter(os.path.join(video_path))
-
- size = video_i.size
- num_frame = video_iter.num_frame
- fps = video_iter.fps
-
- start_frame, end_frame = scene[0], scene[1]
- frame_data = []
-
- while video_iter.index < end_frame and video_iter.index < num_frame:
- frame = next(video_iter)
- frame_data.append(frame)
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。