IP-камера OpenCV Изображение перегружено - PullRequest
0 голосов
/ 09 октября 2019

У меня трудности с обработкой изображений с IP-камеры на моем RPI 4 (даже на моем Mac) с OpenCV и Python. Мой проект состоит в том, чтобы получить изображения IP-камеры (RGB - 1920 x 1080) и обработать их с помощью алгоритма обнаружения объекта. У меня нет никаких ограничений в реальном времени. Если бы я мог запускать алгоритм примерно каждые 5 минут, он был бы идеальным.

Версия OpenCV: 4.1.1 Версия Python: 3.6.5

Прежде всего, я протестировал алгоритм сБанк изображений, который я ранее записал (с той же камеры). Это прекрасно сработало.

Тем не менее, когда я попытался использовать видеопоток, я получил ошибку о перечитании. Я думаю, у меня должна быть проблема с тем, как я управляю потоком изображений.

import cv2, time

cap = cv2.VideoCapture(‘URL’)
if (cap.isOpened()== False):
        print("Error opening video stream or file")

sampleTime = 10 # in seconds
imgCounter = 0
startTime = time.time()

while True:
        ret, frameCaptured = cap.read()

        if time.time() - startTime >= sampleTime and ret == True:
                startTime = time.time()

                # Do some stuff here
                time.sleep(5)
                cv2.imshow('Captured Image', frameCaptured)
                imgCounter += 1
                print("Image:",imgCounter)

        if cv2.waitKey(1) & 0xFF == ord('q'):
                break

cap.release()
cv2.destroyAllWindows()

Даже если первое изображение нормально записывается, я систематически получаю сообщение об ошибке: Изображение: 1 [mjpeg @ 0x7ff6ac808000] overread8

Тогда переменная ret становится False. Обратите внимание, что без условия «ret == True» я вижу зеленую область, появляющуюся на втором изображении, и затем выполнение останавливается.

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