我正在玩新发布的 Kinect Fusion SDK。现在我对来自 Objective-C 的 C++ 很陌生,我在解释一些新函数的“文档”时遇到了困难。
ExportVolumeBlock是我试图用来隔离部分体积(面部)的功能。
public:
HRESULT ExportVolumeBlock(
UINT sourceOriginX,
UINT sourceOriginY,
UINT sourceOriginZ,
UINT destinationResolutionX,
UINT destinationResolutionY,
UINT destinationResolutionZ,
UINT voxelStep,
UINT cbVolumeBlock,
SHORT *pVolumeBlock
)
现在我不太确定的是 cbVolumeBlock 和 pVolumeBlock。尤其是最后一个状态,您需要预先分配一个 SHORT,而 ExportVolumeBlock 需要一个 SHORT。但是文档说明要访问位于 x,y,z 的体素,请使用 pVolume[z][y][x] 但是如果我预先分配一个 3D Short 像
SHORT m_pVolumeB[30][30][30];
m_pVolume->ExportVolumeBlock(0, 0, 0, 30, 30, 30, 1, 8, m_pVolumeB);
我收到消息:
错误:“SHORT (*)[30][30]”类型的参数与“SHORT *”类型的参数不兼容
使用 1D SHORT 我确实得到了一些结果,但我不确定这是否是正确的做法。有没有人对此功能有更多经验?