Ulr*_*ern 2 python linux webcam opencv limit
OpenCV无法在Linux上为超过8个网络摄像头打开VideoCaptures.这是一个简单的例子:
# "opencap.py"
import cv2, sys
dev = int(sys.argv[1])
cap = cv2.VideoCapture(dev)
print "device %d: %s" %(dev, "success" if cap.isOpened() else "failure")
Run Code Online (Sandbox Code Playgroud)
对于我的设置(OpenCV 2.4.11,Ubuntu 14.04),例如9个网络摄像头,opencap.py成功进行了前8个网络摄像头(0-7),但对于最后一个我获得
> python opencap.py 8
HIGHGUI ERROR: V4L: index 8 is not correct!
device 8: failure
Run Code Online (Sandbox Code Playgroud)
注意:v4l2-ctl --list-devices正确列出9个网络摄像头(/ dev/video0,...,/ dev/video8).
问题是由OpenCV源代码中的这一行引起的:
#define MAX_CAMERAS 8
Run Code Online (Sandbox Code Playgroud)
只需更改MAX_CAMERAS值并重建OpenCV即可解决问题.要更改的文件是用于libv4l构建的modules/highgui/src/cap_libv4l.cpp(第260行),以及用于v4l构建的cap_v4l.cpp.(有关两个构建选项的更多信息,请参阅此答案.)对于OpenCV 3.0,目录更改为modules/videoio/src /.
注意:在达到8摄像头限制之前,通常会遇到网络摄像头的USB带宽问题.参见,例如,这个答案.
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |