在Ubuntu中选择Timeout错误 - Opencv

Tom*_*eck 7 c c++ ubuntu webcam opencv

我试图为我的最后一年项目设置OpenCv并遇到了一些问题.我按照教程成功地在Ubuntu中设置了它.

我现在遇到的问题是保持这个示例程序运行.该程序使用网络摄像头进行人脸检测.

它运行良好3或4秒,然后捕获卡在窗口中的单个帧.控制台显示以下输出.

tom@ubuntu:~/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
Run Code Online (Sandbox Code Playgroud)

如果有人知道从哪里开始,我真的很感激一些帮助!

小智 13

试试这个:

modprobe uvcvideo nodrop=1 timeout=6000
Run Code Online (Sandbox Code Playgroud)

如果可行,只需编辑/etc/modprobe.d/modprobe.conf即可永久更改

尝试将超时增加到一个非常大的数字.这应该解决问题,或者至少它对我有用.只是对select的调用没有返回准备好的描述符,这可能是由视频驱动程序或设备引起的.

如果这不起作用,

启用模块跟踪:

sudo echo 0xffff > /sys/module/uvcvideo/parameters/trace
Run Code Online (Sandbox Code Playgroud)

运行程序直到找到错误,并尽快停止.然后禁用跟踪:

sudo echo 0 > /sys/module/uvcvideo/parameters/trace
Run Code Online (Sandbox Code Playgroud)

搜索dmesg错误消息.