V4L2 в библиотеке opencv на python
Начал писать код для работы с библиотекой opencv в python, но столкнулся с такой проблемой, что при использовании v4l2, ловлю ошибку:
cv2.error: OpenCV(4.6.0) /io/opencv/modules/highgui/src/window.cpp:967: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'
Вот сам код:
print(cv2.__version__)
width=800
height=600
flip=2
# camSet=cv2.VideoCapture('/dev/video0')
cam = "v4l2src device=/dev/video0 ! video/x-raw, width=1280, height=720, framerate=30/1 ! videoconvert ! appsink"
camSet=cv2.VideoCapture(cam)
while True:
_, frame = camSet.read()
cv2.imshow('myCam', frame)
cv2.moveWindow('myCam', 0, 0)
if cv2.waitKey(1)==ord('q'):
break
camSet.release()
cv2.destroyAllWindows()```
(Если использовать закоменченную часть, то все норм и камера выводится)
Я читал про v4l2, но так и не до конца понял про совместимость камер
(Я пока использую вэбку с ноутбука)
Вероятнее всего я дурачок, что так делаю, поэтому было бы неплохо если кто-то объяснил что не так
Ответы (1 шт):
Автор решения: Maxim Dupak
→ Ссылка
в качестве второй константы нужно установить cv2.CAP_V4L2. Т.к. пытаетесь использовать pipline через v4l2src. Типа такого camSet=cv2.VideoCapture(cam, cv2.CAP_V4L2)