【问题标题】:Get the serial number of a camera - Openni2 python获取相机的序列号 - Openni2 python
【发布时间】:2017-12-16 20:56:30
【问题描述】:

我正在使用 python3 和 openni2。

当我打开与相机的通信时(在本例中我使用的是 Orbbec Astra),是否可以读取相机的序列号?

这就是我打开通讯的方式:

    dev = openni2.Device.open_any()
    depth_stream = dev.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))

我的目标是每次都找到相同的相机,即使我更换了 USB 端口并且连接了更多的 orrbec。

谢谢

【问题讨论】:

    标签: python python-3.x openni orbbec


    【解决方案1】:

    我不确切知道 python 版本,但在旧的 OpenNI C++ 库中,您可以使用类似于以下内容的方式查询设备 ID:

    openni::Array deviceList;
    openni::OpenNI::enumerateDevices(&deviceList);
    
    for(int i = 0; i != deviceList.getSize(); i++) {
       const openni::DeviceInfo& info = deviceList[i];
       std::string uri = info.getUri(); 
       cout << "URI " << i << ": " << uri << "\n";
     }
    

    很可能存在一个包装底层 DeviceInfo 类及其功能的 python 类,因此您可以请求 Uri。

    【讨论】:

    • 嗨!谢谢你的回答。我试过这个:dev.get_device_info() 它返回: OniDeviceInfo(uri = b'2bc5/0401@1/2', vendor = b'Orbbec', name = b'Astra', usbVendorId = 11205, usbProductId = 1025)我想问:uri是什么,相机的id是哪个?
    • 好的,我认为 uri 字段包含您设备的唯一标识符。试试 dev.get_device_info().uri
    • 我认为 uri 是正确的 id,但 @1/2 表示这是两个设备中的第一个,因为如果我拔下并再次将设备插入另一个 USB,它会改变(1/3 , 1/4, ecc..)。但是 dev.get_device_info().uri 有效!谢谢!为你竖起大拇指:)
    • 您好! :) 抱歉,不同相机中的 uri 是相同的。我有 5-6 个摄像头,它们有 2 个不同的 uri...
    • 我知道,过去我使用 Asus Xtion Pro 相机,他们通过 OpenNI Api 为每个设备提供不同的 Uri。这是一个非常奇怪的情况,getUri() 为不同的设备提供相同的代码......
    【解决方案2】:
    import ctypes
    from primesense import openni2  # , nite2
    from primesense import _openni2 as c_api
    serial_number = str(dev.get_property(c_api.ONI_DEVICE_PROPERTY_SERIAL_NUMBER, (ctypes.c_char * 100)).value)
    

    你可能想清理一下你得到的字符串。 (在 orbbec astra 上测试)。

    我使用以下链接来获得答案:

    https://github.com/OpenNI/OpenNI2/blob/master/Include/OniProperties.h http://docs.ros.org/api/openni2_camera/html/openni2__device__manager_8cpp_source.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多