У меня есть веб-камеры, подключенные к моей малине pi и захватывающие изображения с помощью OpenCV. Однако даже думали, что камеры не двигаются, изображения выглядят немного шаткими. Когда я запускаю только одну камеру, похоже, этого не происходит, поэтому я думаю, что это проблема с пропускной способностью USB. Чтобы уменьшить пропускную способность, я начинаю с попытки уменьшить частоту кадров. Logitech C210 должен поддерживать частоты кадров 5,10,15,20,25 и 30 кадров в секунду.Настройка частоты кадров на веб-камере Logitech C210 в C++ на малине pi с использованием v4l2
Итак, я просматривал документацию на 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;
}
У меня нет проблем компиляции, но я получаю сообщение об ошибке couted о том, что значение не успешно установлено.
У кого-нибудь есть идея, что я делаю неправильно?
Заранее благодарен!