初始化一个没有插入kinect的openni::VideoStream对象

initializing an openni::VideoStream object without kinect plugged in

本文关键字:kinect openni 插入 VideoStream 对象 一个 初始化      更新时间:2023-10-16

我使用openNI2来捕获kinect深度数据。

为了初始化m_depth,我必须使用类openni::VideoStream的一些方法,像这样:

openni::VideoStream m_depth;
openni::Device device;
const char* device_uri;
openni::Status ret;
device_uri = openni::ANY_DEVICE;
ret = openni::STATUS_OK;        
ret = openni::OpenNI::initialize();
ret = device.open(device_uri);
ret = m_depth.create(device, openni::SENSOR_DEPTH);

的问题是,我想初始化对象"m_depth"没有插入kinect。当然不能,因为这个类的方法,如"m_depth"。create"无效

有办法吗?

您可以尝试使用.ONI文件(dummy也可以)来初始化引用OpenNI2文档

以后,这个文件可以用来初始化一个文件Device,并用于回放所记录的相同数据

打开文件设备是通过将其路径作为uri传递给设备::open()方法

你可以改变这一行

device_uri = openni::ANY_DEVICE;

到虚拟ONI文件的路径…

我不认为在OpenNI2中有另一种方式来创建一个深度流,实际上它没有意义创建一个流没有相机,除非你想使用坐标转换器类…

In openni 1。x你可以尝试使用mockdepth(虽然我没有设法使它正确工作)