Использование сценария для превращения видео в набор обучающих изображений - PullRequest
0 голосов
/ 14 января 2020

У меня есть видео в папке «Видео», которое я хотел бы превратить в набор данных изображений для моей модели резюме. Это скрипт, который я использую:

import cv2
import os

cam = cv2.VideoCapture('../Videos/training-videos/0.mp4')

try:
    if not os.path.exists('../Videos/training-videos/data0'):
        os.makedirs('../Videos/training-videos/data0')
except OSError:
    print('Error: Creating directory of data0')

current_frame = 0

while (True):

    ret, frame = cam.read()

    if ret:
        name = './data/frame' + str(current_frame) + '.jpg'
        print('Creating...' + name)

        cv2.imwrite(name, frame)

        current_frame += 1
    else:
        break
cam.release()
cv2.destroyAllWindows()

И я получаю следующий вывод:

...
Creating..../data/frame19485.jpg
Creating..../data/frame19486.jpg
Creating..../data/frame19487.jpg
Creating..../data/frame19488.jpg
Creating..../data/frame19489.jpg
Creating..../data/frame19490.jpg
Creating..../data/frame19491.jpg
Creating..../data/frame19492.jpg
Creating..../data/frame19493.jpg
Creating..../data/frame19494.jpg
Creating..../data/frame19495.jpg
Creating..../data/frame19496.jpg
Creating..../data/frame19497.jpg
Creating..../data/frame19498.jpg
Creating..../data/frame19499.jpg
Creating..../data/frame19500.jpg
Creating..../data/frame19501.jpg
Creating..../data/frame19502.jpg
Creating..../data/frame19503.jpg
Creating..../data/frame19504.jpg
Creating..../data/frame19505.jpg
Creating..../data/frame19506.jpg
Creating..../data/frame19507.jpg

Это все хорошо и хорошо. Также создается папка ../Videos/training-videos/data0, но внутри нет изображений. Что я делаю не так?

1 Ответ

1 голос
/ 14 января 2020

Попробуйте этот код, он работал для меня. Просто замените свой путь в переменной пути. Если вы хотите использовать относительный путь, вам нужно указать весь путь. Кроме этого вы создавали каталог data0 и пытались поместить ваши изображения в data .

import cv2
import os

path = 'C:/Users/hp/Pictures/Camera Roll'
cam = cv2.VideoCapture(os.path.join(path, 'video.mp4'))

try:
    if not os.path.exists(os.path.join(path, 'data0')):
        os.makedirs(os.path.join(path, 'data0'))
except OSError:
    print('Error: Creating directory of data0')

current_frame = 0

while (True):

    ret, frame = cam.read()

    if ret:
        name = 'data0/frame' + str(current_frame) + '.jpg'
        name = os.path.join(path, name)
        print('Creating...' + name)

        cv2.imwrite(name, frame)

        current_frame += 1
    else:
        break
cam.release()
cv2.destroyAllWindows()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...