【发布时间】:2014-09-29 20:50:25
【问题描述】:
我有一些网络摄像头连接到我的树莓派,并正在使用 OpenCV 捕获图像。然而,即使相机没有移动,图像看起来也有点摇晃。当我只运行一台相机时,这似乎不会发生,所以我认为这是 USB 带宽问题。为了减少带宽,我开始尝试降低帧速率。罗技 C210 应该能够支持 5、10、15、20、25 和 30 fps 的帧速率。
所以我一直在查看有关 v4l2 的文档,因为 OpenCV 似乎无论如何都使用这个库(虽然不是很好)。我一直在使用v4l2_ioctl() 来设置相机控制。出于某种原因,我无法以类似的方式设置帧速率。这是我在文档here: 中所做的事情。
int descriptor = v4l2_open("/dev/video0", O_RDWR);
v4l2_captureparm s;
s.capability = V4L2_CAP_TIMEPERFRAME;
s.timeperframe.numerator = 1;
s.timeperframe.denominator = 5;
if( v4l2_ioctl(descriptor, VIDIOC_S_PARM, &s) !=0 )
{
cout<< "Failed to set frame rate "<<endl;
}
我在编译时没有问题,但我确实收到了提示该值未成功设置的错误消息。
有人知道我做错了什么吗?
提前致谢!
【问题讨论】:
标签: c++ linux raspberry-pi webcam v4l2