私の仕事では、雲の各XYZポイントのz座標が灰色の陰影を表すことを意味するグレースケール(深度)画像に点群を変換する必要があります。その行うと3D点群を奥行き画像に変換するにはどうすればいいですか?
float map(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min)/(in_max - in_min) + out_min; }
私は結果を記述する必要があり:Zから座標をマッピングするための[z_min、z_max] [0 255]間隔に間隔Iはアルドゥイーノのマップ機能を使用しました問題は、私が持っている雲が何百万というポイントを持つことができるということなので、画像を1つずつ順番に書き込むことはできません。 3000x1000の順序付けされたXYポイントがあるとします。それらを700x300ピクセルの画像に書きたい場合はどうすればよいですか?私はその質問が明確であることを願っています。
たぶんだけ座標を拡張し、複数のポイントが1つのピクセル上にある場合はグレースケール値を追加しますか? –
こんにちは、私もそれを念頭に置きましたが、これを考慮しましょう。1つの雲列は3600ポイントに等しく、1つの画像行は1680ピクセルに等しい。結果はピクセルあたり2.41ポイントになります。私はちょうど1ピクセルにつき2ポイントで行き、占められていないピクセルを0で埋めるのですか? –
ポイントクラウドが密集しているかどうかは不明です。つまり、複数の点が同じピクセルにある場合、それらをラスタライズする場合と同じように、最も近いもののz値を取ることになります。ですから、この作業を手作業でやりたくない場合は、ポイントを送信してOpenGLと言ってラスタライズしてから、深度バッファを読んでください。 – masterxilo