Как я могу получить доступ к отдельным пиксельным массивам из множества кадров или есть лучший способ сохранить кадры и получить к ним доступ? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь взять 25 кадров из видео и сохранить их в массиве, чтобы потом обработать эти кадры (извлечь фон). Я использую OpenCV для загрузки и хранения кадров из видео (другого способа не знаю). Проблема в том, что я не могу понять, как перебирать отдельные массивы, хранящиеся в ndarray. Возможно ли это сделать? Если нет, то как лучше хранить кадры, чтобы иметь к ним доступ позже? Примечание: я знаю, что уже есть функция OpenCV, которая вычитает фон, но для приложения, которое я создаю для университета, мне не разрешено его использовать. Также я впервые программирую на python, поэтому любые советы, где искать информацию, приветствуются. Вот что я пытался сделать:

frames=[]
vidcap = cv2.VideoCapture(video_source)
for fid in range(0,25):
    vidcap.set(cv2.CAP_PROP_POS_FRAMES, fid)
    ret, frame = vidcap.read()
    frames.append(frame)

Проблема здесь:

width,height = frames[0].size
for row in range(0,height):
    for col in range(0,width):
        for frameNo in range(0,frames.size):
            median_matr.append(frames[0][row,col])

Я получаю следующую ошибку:

width, height = frames [0] .size TypeError: объект 'int' не повторяется

1 Ответ

0 голосов
/ 12 февраля 2020

Проблема здесь в том, что frames [0] .size является целым числом. Вы пытаетесь назначить ширину и высоту в строке

width,height = frames[0].size

, но поскольку Python имеет только одно целое число, которое можно использовать для назначения, он не может обработать строку кода.

Я имею в виду, что мое общее предложение на самом деле таково: «Go получите интегрированную визуальную среду, чтобы вы могли поставить точку останова и отладить происходящее». Основная проблема в том, что вы пытаетесь назначить то, что не может быть назначено. Я предлагаю запустить этот кусок кода в PyCharm, Visual Studio или каком-либо другом визуальном отладчике, который позволяет вам копаться в переменных и покажет вам, что именно происходит, вместо того, чтобы требовать заранее знать все свойства переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...