У меня возникли некоторые проблемы при попытке использовать функцию 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 последние несколько часов, пытаясь найти решение, и я все еще в лесу.
С уважением,