| import cv2 |
| import numpy as np |
|
|
| class VideoProcessor: |
| def __init__(self, mp4): |
| self.mp4 = mp4 |
| self.video_frames = [] |
|
|
| def extract_frames(self, ratio): |
| |
| |
| vid_cap = cv2.VideoCapture(self.mp4) |
| frame_count = int(vid_cap.get(cv2.CAP_PROP_FRAME_COUNT)) |
| frame_number = 0 |
| while vid_cap.isOpened(): |
| ret, frame = vid_cap.read() |
| if ret: |
| if frame_number % ratio == 0: |
| self.video_frames.append(frame) |
| frame_number += 1 |
| else: |
| break |
| |
| def resize_and_normalize_frames(self, width, height, normalizing_const=255.0): |
| |
| |
| |
| resized_normal_frames = [] |
| for frame in self.video_frames: |
| frame = cv2.resize(frame, (width, height)) |
| frame = frame.astype(np.float32) / normalizing_const |
| resized_normal_frames.append(frame) |
| self.video_frames = resized_normal_frames |
|
|
| def get_frames(self): |
| |
| if self.video_frames != []: |
| return np.array(self.video_frames) |
| else: |
| return None |
| |
| |
|
|