2017-07-12 98 views
2

私はpython3とopenni2を使用しています。カメラのシリアル番号を取得する - Openni2 python

カメラとの通信を開くと(この場合は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てきた場合でも、毎回同じカメラを見つけることです。

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"; 
} 

は、私はPythonのバージョンについては、正確に知りませんが、古いOpenNI C++ライブラリでは、次のような何かをデバイスIDを照会することができましたあなた

答えて

2

ありがとうございましたおそらく、基盤となるDeviceInfoクラスとその機能をラップするPythonクラスが存在する可能性があるので、Uriを尋ねることができます。

+1

こんにちは!答えてくれてありがとう。 私はこれを試しました:dev.get_device_info() そして、それは次を返します:OniDeviceInfo(uri = b'2bc5/0401 @ 1/2 '、vendor = b'Orbbec'、name = b'Astra '、usbVendorId = 11205、usbProductId = 1025) 私は質問したかった:uriとは何ですか?カメラのIDはどれですか? –

+0

OK、私はuriフィールドにあなたのデバイスのユニークな識別子が入っていると思います。 dev.get_device_info()を試してください。uri –

+1

私はuriが正しいidだと思いますが、@ 1/2は2つのデバイスの最初のものです。別のUSBのデバイスを再び抜き差しすると、 3、1/4、ecc ..)。 しかし、dev.get_device_info()。uri works!ありがとうございました!あなたのための親指:) –

関連する問題