2013-11-22 112 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进行测试。 –