OpenCV VideoCapture::set() возвращает false, но успешно

Я использую OpenCV 2.4.6 как с C++, так и с Python на Kubuntu 12.04. С веб-камерой Logitech Quick Cam Pro 3000 мне удалось установить размер кадра, но VideoCapture::set() всегда возвращает false.

// C++
VideoCapture lCap( 0 );

cout << lCap.get( CV_CAP_PROP_FRAME_WIDTH ) << endl;
cout << lCap.get( CV_CAP_PROP_FRAME_HEIGHT ) << endl;
cout << boolalpha << lCap.set( CV_CAP_PROP_FRAME_WIDTH, 320 ) << endl;
cout << boolalpha << lCap.set( CV_CAP_PROP_FRAME_HEIGHT, 240 ) << endl;
cout << lCap.get( CV_CAP_PROP_FRAME_WIDTH ) << endl;
cout << lCap.get( CV_CAP_PROP_FRAME_HEIGHT ) << endl;

дает:

640
480
false
false
320
240

а также

# Python 2.7
Cap = cv2.VideoCapture( 0 )
print( Cap.get( CV_CAP_PROP_FRAME_WIDTH ) )
print( Cap.get( CV_CAP_PROP_FRAME_HEIGHT ) )
print( Cap.set( CV_CAP_PROP_FRAME_WIDTH, 320 ) )
print( Cap.set( CV_CAP_PROP_FRAME_HEIGHT, 240 ) )
print( Cap.get( CV_CAP_PROP_FRAME_WIDTH ) )
print( Cap.get( CV_CAP_PROP_FRAME_HEIGHT ) )

тоже самое дает.

Поэтому я хочу знать, нормально ли это поведение (либо OpenCV, либо библиотеки V4L, V4L2???, либо моя веб-камера). Если это так, я всегда могу проверить свою попытку, выполнив get() после set(). Но если что-то не так, я хотел бы это знать.

См. документ: документ для VideoCapture::set( ), OpenCV 2.4.6

Спасибо!


person dom_beau    schedule 22.11.2013    source источник
comment
Вы используете транковую или стабильную версию ..?   -  person scap3y    schedule 22.11.2013
comment
Я использую стабильную версию 2.4.6...   -  person dom_beau    schedule 22.11.2013


Ответы (1)


Я попробовал то же самое на своей веб-камере Logitech c270, и она работала правильно, а также возвращала значение true. Я предполагаю, что проблема связана с ошибкой драйвера веб-камеры.

Попробуйте установить официальные драйверы Logitech, если вы еще этого не сделали (для моей веб-камеры я заметил, что установка официальных драйверов также ускоряет захват в OpenCV примерно в 10 раз).

person littleimp    schedule 22.11.2013
comment
Спасибо за предложение, я сделаю это как можно скорее. - person dom_beau; 22.11.2013
comment
Ну, на самом деле, кажется, что с ядром Linux 3+ у меня есть хороший драйвер. Я, вероятно, куплю новую веб-камеру и оставлю свой старый QCPro3000 для тестирования. - person dom_beau; 26.11.2013