2013-11-22 129 views
0

我使用的OpenCV 2.4.6與C++和Python的上的Kubuntu 12.04。隨着羅技快的CAM Pro的3000網絡攝像頭,我成功設置幀大小,但VideoCapture::set()總是返回OpenCV的VideoCapture ::集()返回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 ???還是我的攝像頭)。如果是這樣,我總是可以在set()之後通過執行get()來檢查我的嘗試。但如果有什麼不對,我想知道它。

看到該文檔:Doc for VideoCapture::set(), OpenCV 2.4.6

謝謝!

+0

您使用的行李箱或穩定版本..? – scap3y

+0

我使用穩定的2.4.6 ... –

回答

1

我嘗試同樣對我的羅技C270網絡攝像頭和它的工作正常,也返回真。我猜這個問題是攝像頭驅動程序的錯誤。

嘗試安裝羅技官方的驅動程序,如果您還沒有這樣做已經(我注意到了我的攝像頭,安裝官方驅動也使得OpenCV的捕獲大約快10倍)這一點。

+0

感謝您的建議,我會盡快做到這一點。 –

+0

嗯,實際上,看起來在Linux內核3+中我有很好的驅動程序。我可能會購買新的WebCam並保留舊的QCPro3000進行測試。 –

相關問題