华为AREngine C++

Huawei AREngine C++

我正在尝试访问飞行时间传感器,以便使用数据。在 Huawei AR Engine 文档中,我找到了以下功能:

HwArPointCloud_getData(ar_session, ar_point_cloud, &point_cloud_data);

point_cloud_data是由(x,y,z和置信度)组成的float数组,但是不知道怎么解析?

你有什么解决办法吗?

as Thinking that each float number is divided in (x | y | and DEPTH16)

不是。这是没有意义的。浮点数有一定的格式,这就是它成为浮点数的原因。如果你开始“划分”它,它就不是浮点数,但可能是 int 位域之类的,但不是浮点数。所以忘掉那种思路吧。比那简单多了。

连续浮动。如果您是 time-crunched 华为工程师,您能想到多少种不同的方式来表示此类数据? :) 您很可能会在一两次尝试中弄明白。尝试显示它,假设它先 x,y,z,conf 然后 conf,x,y,zx,y,z 坐标的排列也很容易理清。虽然文档显然是无可挑剔的,但这并不是一个很难解决的难题。不过,可视化数据是关键。将这些数字视为数字很快就会让您厌烦。

请注意,您不应该“解析”任何内容。这是一个简单的const float *array。就好像它是一个浮点数数组一样阅读它,每个点四个浮点数。 C++ 标准还允许您将其视为浮点数结构数组,让您的生活更轻松:

struct Point {
  float x, y, z, confidence;
};
...
const Point *point_cloud_data = {};
...
HwArPointCloud_getData(ar_session, ar_point_cloud, 
                       reinterpret_cast<const float**>(&point_cloud_data));