以下是我大致在做什么。

MockDepthGenerator mockDepth;
//nRetVal = mockDepth.CreateBasedOn(depth); // *I dont want this line (so not doing)*

mockDepth.Create(context, "MockDepth"); // *But I want to do this, starting from scratch*

// setting my own depth data
XnDepthPixel* mydata = new XnDepthPixel[640*480];
mockDepth.SetData(11, 1212, 640*480, mydata);

// setting mode
XnMapOutputMode aa= {640, 480, 30};
mockDepth.SetMapOutputMode(aa);

// creating recorder
Recorder recorder;
nRetVal = recorder.Create(context);
nRetVal = recorder.SetDestination(XN_RECORD_MEDIUM_FILE, strOutputFile);

// add depth node to recorder
nRetVal = recorder.AddNodeToRecording(mockDepth); // ** getting run-time error here **

需要对mockDepth 的哪些其他属性进行初始化,以便我可以将其添加到记录仪中,而无需实际的深度生成器

N.B.我不太了解OPENNI SDK。那就是为什么我在这里问这个?

最佳答案

我有一个从上下文创建新的MockDepthGenerator的想法,而不是基于现有的深度生成器。但是对我来说,它永远都行不通。记录器拒绝添加模拟深度,并抛出异常,说明某些功能未实现! (我使用的是OpenNI 1.5.4。)

我当前使用的解决方法是简单地使用一个虚拟的小型ONI文件来检索深度生成器,并基于该文件创建模拟深度生成器。

10-08 12:05