16 ビットの符号なし整数配列である Kinect センサーからの深度データで遊んでいます。粗雑な情報を取り除くために、1 ピクセルの内容を左に 3 ビット シフトする必要があります。私が受け取った結果は小さすぎて奇妙です (たとえば、出力される数値はミリメートル単位の距離であるため、~400 のはずですが、0 から 30 の数値が得られます)。
castedBuffer = (uchar*)internalFrameArray->constData();
std::cout << (int)((unsigned short int)castedBuffer[307000]>>3) << "\n";
(uchar*) 形式 (8 ビット) でデータを取得するため、苦労しています。私の理論では、ビット シフトは 16 ビット数の半分にしか適用されていません。
私は少し迷っています!