TypeError with VideoCapture Crop - PullRequest
       13

TypeError with VideoCapture Crop

0 голосов
/ 19 июня 2019

Я пытался обрезать видеокадр, используя нарезку, как подсказывают другие ответы на вопрос, как обрезать видео через OpenCV.Я настроил свой захват видео в реальном времени следующим образом:

vs = VideoCapture(1)
vs.set(cv2.CAP_PROP_FRAME_WIDTH,100)
vs.set(cv2.CAP_PROP_FRAME_HEIGHT,100)

Затем я создаю цикл while для циклического перебора кадров из видеопотока:

while True:
   frame = vs.read()
   cropped = frame[160:450, 170:470]

Когда я запускаю скрипт,однако возвращается ошибка, в которой говорится:

cropped = frame [160: 450, 170: 470]

TypeError: индексы кортежа должны быть целыми числами или слайсами, а не кортежем

У кого-нибудь есть решение этой проблемы?

1 Ответ

1 голос
/ 19 июня 2019

Вы неправильно вызвали функцию cv2.VideoCapture.read(). Функция возвращает кортеж (ret_val, frame). Вы сохраняете этот кортеж как переменную frame. Вы получаете ошибку, потому что пытаетесь соединить этот кортеж. Вы можете подтвердить это, используя print(type(frame)).

Если вы измените строку на ret_val, frame = vs.read(), функция будет работать так, как вы хотите, и изображение будет правильно сращено

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