質問

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

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

役に立ちましたか?

解決

データは16ビット(2^16-1 = 65535)に収まるため、16ビットのグレースケール画像をサポートするTIFFやPNGなどのフォーマットを使用できます。

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

PNG形式のIMWriteについてMATLABドキュメントが言っていることは次のとおりです。

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

したがって、データをUINT16として保存している場合は、すでに問題ありません。

他のヒント

Command Save()とLoad()を使用して、マトリックスをディスクに直接保存できます。しかし、その後、Matlabだけがそれを読むことができます。まったく精度を失わないので、これは最良の選択です。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top