很久沒有更新了,今天更一篇最近遇到的問題,及解決辦法,後面博客得繼續寫起來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終於能夠順利運行了,上面的應用你們就能夠根據本身的須要隨便改了。開發