VIDIOC_STREAMON: неверный аргумент - PullRequest
0 голосов
/ 12 октября 2018

У меня возникли некоторые проблемы при попытке использовать функцию VideoCapture в OpenCV.
После VideoCapture.read () я получаю сообщение об ошибке "VIDIOC_STREAMON: Invalid Argument".

Я использую Raspberry Pi 3 сУстановлен модуль камеры (это работает нормально, поскольку я могу запустить свое приложение для обнаружения маркеров Aruco)
Я пытаюсь улучшить вышеупомянутое приложение, которое в настоящее время захватывает изображения, обнаруживает маркеры на них и отображает их с помощью imshow.Я хочу иметь возможность обнаруживать маркеры при захвате видео в реальном времени, как на этом видео: https://www.youtube.com/watch?v=IsXWrcB_Hvs

Вот код, который я пытаюсь запустить:

def continuuosDetection(self):
    cap = cv2.VideoCapture(-1)

    if not cap.isOpened():
        print("The camera didn\'t open correctly")
        cap.open(-1)

    print(cap.isOpened())
    ret, frame = cap.read()

    cap.release()
    if not cap.isOpened():
        print("Camera shut properly")

Я использую Python 3.5, и, как уже упоминалось, модуль камеры работает нормально с другой функцией, хотя я использую метод PiCamera.capture () для получения изображений.Для VideoCapture () я использовал -1 и 0 в качестве идентификаторов камеры.

print(cap.isOpened())

Это возвращает «True» каждый раз.Таким образом, кажется, что камера открывается правильно (?)

print(ret)  
print(frame)

Они возвращают 'False' и 'None', поэтому я не могу отобразить захват с помощью cv2.imshow.

Я использовал:

sudo mobprobe bcm2835-v4l2

Как я нашел на одном форуме, но это не решает мою проблему.

И предложения или советы будут высоко оценены.
Я все еще пытаюсь решить эту проблему, поэтому, если я найду ответ, я включу его здесь.Хотя до сих пор я прокручивал Google последние несколько часов, пытаясь найти решение, и я все еще в лесу.

С уважением,

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