正常的方式来创建一个videocapture是这样的:从接口名称,而不是摄像机号创建OpenCV的VideoCapture
cam = cv2.VideoCapture(n)
,其中n对应于/dev/video0
数量,dev/video1
但因为我m建立了一个机器人,它使用多个摄像头来处理不同的事情,我需要确保它被分配给正确的摄像头,我创建了udev规则,创建带有符号链接到正确端口的设备,每当插入特定摄像头时。
他们似乎是工作,因为当我看着在/dev
目录,我可以看到链接:
/dev/front_cam -> video1
但是我不知道如何实际现在用的这个。
我以为我可以从文件名中打开它,好像它是一个视频,但cam = cv2.VideoCapture('/dev/front_cam')
不起作用。
也不对cv2.VideoCapture('/dev/video1')
它不会抛出一个错误,它返回一个VideoCapture对象,只是没有一个年开幕(cam.isOpened()
返回False
)。
可以从您的程序读取符号链接,这样就可以得到字符串“的/ dev /视频1”编程?如果是的话,你可以从该字符串中提取数字(1)并将其提供给openCV捕获对象? – Micka
我upvoted你的问题,我认为很好的问题。 – mertyildiran