0

私はリアルセンス カメラを持っていて、16 ビット深度の画像を読み込もうとしています。問題があります。16 ビット値で直接 opencv マットを作成すると、黒い画像しか表示されません。16 ビット イメージを 255/1000 スケールで 8 ビットに変換すると、通常のイメージが得られますが、その情報を失いたくありません。

depthImage->AcquireAccess(PXCImage::ACCESS_READ, PXCImage::PIXEL_FORMAT_DEPTH, &depthImgData);

pxcBYTE* cpixels = depthImgData.planes[0];

Mat r_depth(frameSize, CV_16UC1, cpixels);

これが私のコードで、画像を変換します。

このような動作の理由と、16 ビット イメージを取得する方法を教えてください。

4

1 に答える 1

1

どの RealSense デバイスを使用していますか? R200、LR200、SR300、D410?

GitHub で管理されている librealsense ライブラリ/API を使用することをお勧めします。深度フォーマットを RS2_FORMAT_Z16 に設定します。そして、以下のコードを使用して 16 ビット深度データを取得します。

auto frame = queue.wait_for_frame();

Mat depth16(Size(640, 480), CV_16U, (void*)frame.get_data(), Mat::AUTO_STEP);
于 2017-09-12T13:20:10.177 に答える