I'm using OpenCV 2.4.6 with both C++ and Python on Kubuntu 12.04. With a Logitech Quick Cam Pro 3000 webcam, I succeed to set the frame size but VideoCapture::set()
always returns 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;
gives:
640
480
false
false
320
240
and
# 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 ) )
also gives the same thing.
So I want to know if this behaviour is normal (either OpenCV or the libs V4L, V4L2??? or my webcam). If so, I can always check my attempt by doing a get()
after a set()
. But if something is wrong, I would like to know it.
See the doc: Doc for VideoCapture::set(), OpenCV 2.4.6
Thanks!