Как ускорить чтение кадров mp4? - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть скрипт, который открывает файл .mp4 с помощью cv2. У меня около 1500 кадров, и я хочу поработать над ними. Я полагаю, что самой медленной частью моего кода является фактическое открытие фреймов, а не вычисления, выполненные с ними. Есть ли способ, которым я могу ускорить это? Я изучил многопоточность и многопоточность, но мне не повезло.

import cv2, os
import numpy as np

waves = {}

# Opens the Video file
cap=cv2.VideoCapture('8atpo.mp4')
num_of_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) #1586

def open_frame(frame_no):
    while(cap.isOpened()):
        cap.set(1,frame_no)
        ret, frame = cap.read()
        if ret == False:
            break
        # frame consists of 1078 arrays. One for each height pixel.
        #      each array consists of 1360 arrays. One for each width pixel.
        #      each array consits of 3 values. RGB??
        return frame

def read_box(frame_no, nx1=0,nx2=2016,ny1=0,ny2=1600):
    cframe = open_frame(frame_no)     # two slowest parts 
    pframe = open_frame(frame_no - 1) # two slowest parts
    diff_frame = cframe[nx1:nx2, ny1:ny2] - pframe[nx1:nx2, ny1:ny2]
    return np.mean(diff_frame)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...