Python&openni2:在不同的进程中同时使用2个摄像头

2024-09-29 22:22:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在xubuntu 16.04中使用了2个摄像头(Orbec Astra Mini)和python3、opencv3.2和openNi2。在

我可以读取1个摄像头,并可以选择哪个摄像头读取(更改设备[0])

dev = openni2.Device.open_all()
    depth_stream = dev[0].create_depth_stream()
    depth_stream.start()
    depth_stream.set_video_mode(c_api.OniVideoMode(pixelFormat = c_api.OniPixelFormat.ONI_PIXEL_FORMAT_DEPTH_100_UM, resolutionX = 320, resolutionY = 240, fps = 30))

问题是,如果我启动另一个进程读取另一个摄像头,它会崩溃并显示:

^{pr2}$

我试着把摄像机插在同一辆车和另一辆车上。现在它们一个插入usb3.0,另一个插入usb2.0。在

如果在单个进程中调用它们,它们都可以工作,当我启动第二个进程(相同的代码使用不同的设备索引)时,第二个进程不起作用。在

使用解决方案编辑: 我解决了在openni2.py中创建新函数的问题:

@classmethod
def open_any_available(cls, id):
    z= 0
    for cam in cls.enumerate_uris():
        if z== id:
            try:
                return cls(cam)
            except OpenNIError:
                pass
        z+=1
    raise Exception("no available cams")

感谢:https://3dclub.orbbec3d.com/t/python-openni2-use-2-cameras-at-the-same-time-in-different-processes/935


Tags: indevapiidstream进程openavailable

热门问题