我使用的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
谢谢!
您使用的行李箱或稳定版本..? – scap3y
我使用稳定的2.4.6 ... –