6

Kinectを使用することで、各深度画像のピクセルがカメラとオブジェクトの間の距離(ミリメートル単位)を格納した深度画像を取得できます。後で使用できるように保存したいと思います。最高の推奨事項は何ですか?

深度画像を画像(jpg / pngなど)として保存することを考えています。ただし、値は通常50mmから10000mmですが、通常の画像要素は0から255まで保存できます。次に、データを0〜255の範囲にスケーリングする必要があります。これにより、データが何らかの形で悪用される可能性があります。

4

2 に答える 2

8

データは16ビット(2 ^ 16-1 = 65535)に収まるため、16ビットのグレースケール画像をサポートするtiffやpngなどの任意の形式を使用できます。

もちろん、これらの形式を使用する利点は、別のプログラムを使用してそれらを読み取ることができることです。圧縮アーティファクトのため、おそらくjpeg形式を使用したくないでしょう。

png形式のimwriteについてmatlabのドキュメントに記載されている内容は次のとおりです。

デフォルトでは、画像がdoubleまたはuint8の場合、imwriteはピクセルあたり8ビットを使用します。画像がuint16の場合、ピクセルあたり16ビット。画像が論理的である場合、ピクセルあたり1ビット。

したがって、データをuint16として保存していれば、すでに問題はありません。

于 2011-06-13T07:13:14.983 に答える
2

コマンド save() および load() を使用して、行列をディスクに直接保存できます。ただし、その場合、matlab のみがそれを読み取ることができます。精度がまったく失われないため、これが最良の選択です。

値を 0..255 にスケーリングする必要がある場合は、線形にスケーリングしないでください。より近いオブジェクトには、より高い精度が必要です。したがって、次の関数をマトリックス ln( DepthImage - 49)*25 に適用して、およそ 0..255 の値を取得します。画像を保存し、ロードするときに反転機能を適用します。そのような方法で(lan関数を使用して)精度が損なわれることは少なくなります

于 2011-06-12T19:48:46.043 に答える