/ / Criar um vídeo de outro vídeo, tirando apenas alguns quadros, mas sem escrevê-los em um arquivo - python, opencv

Crie um vídeo de outro vídeo, tirando apenas alguns quadros, mas sem escrevê-los em um arquivo - python, opencv

Eu tenho um pequeno problema estranho aqui!

Eu tenho um vídeo em um arquivo. Eu quero extrair alguns quadros deste vídeo e fazer um vídeo com isso e, em seguida, usá-lo para exibir (Nota: eu não quero usar imshow () para isso). E eu quero fazer isso sem escrever isso em um arquivo.

Algorithm:
1. Read the video from file
2. extract the frames
3. make a video out of these frames(save it as a variable; do not write it into a file)
4. Use this variable which holds the new video for displaying

Qualquer sugestão seria de grande ajuda!

Respostas:

1 para resposta № 1

Crie um cap = cv2.VideoCapture(file_name). Obtenha a largura e a altura do seu filme com

h = cap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)
w = cap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)

Crie um array numpy

frames = np.zeros((h, w, 3, number_of_frames), np.uint8)

e salve os quadros que você deseja manter nessa matriz:

error, frame = cap.read()
frames[:,:,:,i] = frame

Se você não sabe quantos quadros tem anteriormente, basta concatená-los em uma lista do Python.

Em seguida, exiba seus quadros.