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

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

// 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, либо libs V4L, V4L2 ??? или моя веб-камера). Если это так, я всегда могу проверить свою попытку, выполнив get() после set(), Но если что-то не так, я бы хотел это знать.

Смотрите документацию: Документ для VideoCapture :: set (), OpenCV 2.4.6

Спасибо!

0

Решение

Я попробовал то же самое на моей веб-камере Logitech C270, и она работала правильно, а также вернула истину. Я предполагаю, что проблема в вине драйвера веб-камеры.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]