我正在使用来自 Kinect 传感器的深度数据,这是一个 16 位无符号整数数组。为了摆脱一些杂乱无章的信息,我需要将一个像素的内容向左移动三个。我收到的结果太小而且很奇怪(例如,打印出来的数字应该是 ~400,因为它是以毫米为单位的距离,但我得到的数字是 0-30)。
castedBuffer = (uchar*)internalFrameArray->constData();
std::cout << (int)((unsigned short int)castedBuffer[307000]>>3) << "\n";
我很挣扎,因为我以 (uchar*) 格式(8 位)输出数据,我的理论是位移仅应用于 16 位数字的一半。
我有点失落!