获取相机的序列号 - Openni2 python
Get the serial number of a camera - Openni2 python
我正在使用 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 版本,但在旧的 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";
}
很可能会有一个 python class 包装底层 DeviceInfo class 及其功能,因此您可以请求 Uri。
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
我正在使用 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 版本,但在旧的 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";
}
很可能会有一个 python class 包装底层 DeviceInfo class 及其功能,因此您可以请求 Uri。
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