Я использую OpenCV 2.4.6 для захвата изображений с моей старой веб-камеры Logitech QuickCam Pro 3000. С помощью VideoCapture::set( CV_CAP_PROP_FRAME_WIDTH, ... )
Я не могу установить значение ширины (то же самое для высоты). set(...)
всегда возвращается false
,
Это нормально?
Постскриптум Я на линуксе (Kubuntu) и, кажется, использовать V4L.
Кажется, ваша камера не была правильно инициализирована. Следующий код работает для меня.
using namespace cv;
[...]
VideoCapture capture(0);
capture.set(CV_CAP_PROP_FRAME_WIDTH, width);
capture.set(CV_CAP_PROP_FRAME_HEIGHT, height);
Я немного поэкспериментировал с этим и обнаружил следующие проблемы:
capture.set
возвращает 0, если capture
не был инициализирован.capture.set
возвращает 0, если камера занята (другой процесс использует ее).Не гарантируется, что вызов VideoCapture::set
изменит разрешение камеры на желаемое. Например, для моей веб-камеры Logitech HD Pro C290 можно установить разрешение 640×480 и 1920×1080. Но когда я пытаюсь 1024×768, VideoCapture::set
возвращает true, но фактическое разрешение установлено на 960×720. Итак, проверьте фактическое разрешение после прочтения кадра.
Других решений пока нет …