ValueError: append_data требует ndarray в качестве первого аргумента (Imageio) - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь обнаружить объекты, используя пользовательскую функцию (называемую Digit_REcognition), которая принимает на вход изображение и возвращает то же изображение с ограничительной рамкой для распознанного класса:

reader = imageio.get_reader(video_path)

# Extract metadata
fps = reader.get_meta_data()['fps']

# Create the new video
writer = imageio.get_writer('output_1.mp4', fps = fps)

cap = cv2.VideoCapture(video_path)
length = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

#Apply detect function on each frame
progress = 0
for frame in reader:

    frame = Digit_Recognition(frame)
    writer.append_data(frame)

    progress += 1
    print("Processed frames:", round(progress/length * 100, 2), "%,")

writer.close()

print("Exection Done")

Я нашел дваосновные проблемы, а именно:

  1. ПРЕДУПРЕЖДЕНИЕ: root: Предупреждение: размер кадра для чтения (1080, 1440) отличается от размера кадра источника (1440, 1080).

  2. Прогресс продолжает идти после 100%

3. После нескольких итераций перед выполнением задачи записи возникает следующая ошибка:

*File "<ipython-input-3-36cc68a9710d>", line 165, in Complete_Model
    writer.append_data(frame)

  File "/anaconda3/lib/python3.6/site-packages/imageio/core/format.py", line 477, in append_data
    raise ValueError('append_data requires ndarray as first arg')

ValueError: append_data requires ndarray as first arg*

Как я могу исправить ошибки, но, что еще важнее , третий один?

Ps Я использую .movв качестве входного видео

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