很久没有更新了,今天更一篇最近遇到的问题,及解决办法,后面博客得继续写起来python
#使用Python下的lib库直接进行安装 apt-get install python-opencv
#使用以下代码进行测试,如下代码是拍照,在按q以后,保存图片并退出。 import cv2 cap = cv2.VideoCapture(0) while(1): # get a frame ret, frame = cap.read() # show a frame cv2.imshow("capture", frame) if cv2.waitKey(1) & 0xFF == ord('q'): cv2.imwrite("./test.jpeg", frame) break cap.release() cv2.destroyAllWindows()
至此表明安装基本没有问题,能够进行下一步开发git
经过在上述的测试代码添加配置摄像头的参数github
#设置摄像头的像素 cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH,3264) cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT,2448) #设置摄像头的帧率 cap.set(cv2.cv.CV_CAP_PROP_FPS,5)
本觉得万事大吉能够收工了,一运行发现了个巨大的问题
错误以下提示ide
libv4l2: error converting / decoding frame data: v4l-convert: error destination buffer too small (16777216 < 23970816) VIDIOC_DQBUF: Bad address
看提示是由于本身想用到高清的,但是libv412库不支持,致使buffer不够大,产生的错误,经过libv4l2: error converting / decoding frame data: v4l-convert: error destination buffer too small 解决问题,下面说一下解决步骤测试
//The change was #define V4L2_FRAME_BUF_SIZE (4096 * 4096) //to #define V4L2_FRAME_BUF_SIZE (2 * 4096 * 4096)
sudo apt-get remove libv4l-dev
#源码目录下先进行configure,这个中间貌似因为没有安装autoconf之类的东西,也报过错,出现错误后你们Google一下就能找到答案,都是些容易解决的问题 autoreconf -vfi make make install
这样库文件就从新安装了,测试一下,高清的摄像头也能够用了。ui
本觉得万事大吉了,万万没想到又出幺蛾子了,同时打开三个摄像头的时候又报错了以下:spa
libv4l2: error turning on stream: No space left on device
一下就嗨皮了,查了一下貌似说是usb带宽不够用了,通过找资料找到下面的解决办法code
sudo rmmod uvcvideo #下面这个128能够更改最好改大点,若是用的是高清摄像头 sudo modprobe uvcvideo quirks=128
若是更改有效,能够用下面的方法进行配置,这样就不用每次都改了图片
sudo vi /etc/modprobe.d/uvcvideo.conf options uvcvideo quirks=128
ok终于能够顺利运行了,上面的应用你们就能够根据本身的须要随便改了。开发