我使用C++和Python在Kuuntuu 12.04上使用OpenCV 2.4.6。使用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;
给出:
^{pr2}$以及
# 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或libsv4l,V4L2???或我的网络摄像头)。如果是这样,我总是可以通过在set()
之后执行get()
来检查我的尝试。但如果出了什么问题,我想知道。在
参见文档:Doc for VideoCapture::set(), OpenCV 2.4.6
谢谢!在
我在我的罗技c270网络摄像头上尝试了同样的方法,它工作正常,也返回了真值。我猜问题出在网络摄像头驱动程序上。在
如果你还没有安装官方的Logitech驱动程序(我注意到在我的网络摄像头中安装官方驱动程序也可以使OpenCV中的捕获速度提高10倍)。在
相关问题 更多 >
编程相关推荐