2012-10-03 79 views
7

我想爲我的最後一年項目設置OpenCv,並遇到了一些問題。我在this教程中成功獲得了它在Ubuntu中的設置。在Ubuntu中選擇超時錯誤 - Opencv

我現在的問題是保持這個sample程序運行。該程序是使用網絡攝像頭進行人臉檢測。

它運行良好3或4秒,然後捕獲卡住在窗口中的單個框架。控制檯顯示以下輸出。

[email protected]:~/College/opencv/faceDetect_sample$ make 
./faceDetect --cascade="haarcascade_frontalface_alt.xml" --nested-cascade="haarcascade_eye_tree_eyeglasses.xml" 
VIDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument 
init done 
opengl support available 
select timeout 
select timeout 
select timeout 
select timeout 
select timeout 
select timeout 
^Cmake: *** [run] Interrupt 

如果有人有從這裏去哪裏的想法,我會非常感謝一些幫助!

+0

你有沒有找到解決方案? – marshmallow

回答

11

試試這個:

modprobe uvcvideo nodrop=1 timeout=6000 

,如果這樣的作品,只是使更改永久編輯/etc/modprobe.d/modprobe.conf

嘗試增加超時一個大的離譜號碼。這應該解決這個問題,或者至少它爲我工作。這只是調用select返回沒有就緒描述符,這可能是由視頻驅動程序或設備之一引起的。

如果不工作,

啓用模塊的痕跡:

sudo echo 0xffff > /sys/module/uvcvideo/parameters/trace 

運行該程序,直到發現錯誤,並儘快停止它。然後禁用跟蹤:

sudo echo 0 > /sys/module/uvcvideo/parameters/trace 

使用dmesg在錯誤消息中搜索。

+0

沒有做到這一點,謝謝你的建議! – TomSelleck

+0

與更多信息更新,希望有所幫助。 – 2012-10-04 21:44:00

1

我有同樣的問題與我的羅技C920。我嘗試了以下解決方案,但沒有取得任然而,它像C930e網絡攝像頭的魅力一樣,所以我猜V4L API與它有關。