Използвам 3 уеб камери, за да правя от време на време моментни снимки в OpenCV. Те са свързани към една и съща usb шина, която не позволява всички 3 връзки едновременно поради ограничения на usb честотната лента (намаляването на разделителните способности позволява най-много 2 едновременни връзки и нямам повече usb шини).
Поради това трябва да превключвам връзките на уеб камерата всеки път, когато искам да направя моментна снимка, но това причинява изтичане на памет след около 40 превключвания.
Това е грешката, която получавам:
libv4l2: error allocating conversion buffer
mmap: Cannot allocate memory
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
Unable to stop the stream.: Bad file descriptor
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
munmap: Invalid argument
libv4l1: error allocating v4l1 buffer: Cannot allocate memory
HIGHGUI ERROR: V4L: Mapping Memmory from video source error: Invalid argument
HIGHGUI ERROR: V4L: Initial Capture Error: Unable to load initial memory buffers.
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or
unsupported array type) in cvGetMat, file
/build/buildd/opencv-2.3.1/modules/core/src/array.cpp, line 2482
Traceback (most recent call last):
File "/home/irobot/project/test.py", line 7, in <module>
cv2.imshow('cam', img)
cv2.error: /build/buildd/opencv-2.3.1/modules/core/src/array.cpp:2482:
error: (-206) Unrecognized or unsupported array type in function cvGetMat
Това е прост фрагмент от код, който генерира тази грешка:
import cv2
for i in range(0,100):
print i
cam = cv2.VideoCapture(0)
success, img = cam.read()
cv2.imshow('cam', img)
del(cam)
if cv2.waitKey(5) > -1:
break
cv2.destroyAllWindows()
Може би заслужава да се отбележи, че получавам VIDIOC_QUERYMENU: Invalid argument
грешки всеки път, когато камерата се свърже, въпреки че след това все още мога да я използвам.
Като допълнителна информация, това е моят v4l2-ctl -V
резултат от уеб камерата:
~$ v4l2-ctl -V
Format Video Capture:
Width/Height : 640/480
Pixel Format : 'YUYV'
Field : None
Bytes per Line: 1280
Size Image : 614400
Colorspace : SRGB
Какво причинява тези грешки и как мога да ги поправя?