blaze:深度情報をRGB画像として視覚化する#
Basler blaze-101カメラを使用しており、深度情報をカラー画像にマッピングしたい場合。
深度情報をRGB画像として視覚化する方法の詳細については、こちらをご覧ください。
この記事では、追加情報について説明します。
Scalingファクターは、カメラがShort RangeまたはLong Rangeのどちらで動作しているかに関係なく一定です。深度画像は輝度画像とは完全に独立しており、つまり座標の計算は輝度画像に依存しません。計算は、レンジマップをどのように取得するかに依存します。
blaze Legacy SDKまたはpylon SDKのいずれかを使用して取得したレンジマップ#
pylon APIまたはROSドライバーでキャプチャされたロー画像は、[0mm~10000mm]のz値を[0~65535]のグレー値にマッピングすることによって生成されます。
以下で提供されるScalingファクターを使用します。 gray2mm == Scan3dCoordinateScale. DepthMin および DepthMax パラメーターを考慮する必要はありません。
blaze-101の場合、 gray2mm は定数値であり、 gray2mm = 10000/65535 = 0.15259となります。これにより、以下のようになります:
Distance Measured [mm] = Gray_Value * gray2mm = Gray_Value * 0.15259
blaze Viewerを使用して取得したレンジマップ#
blaze Viewerはポイントクラウドデータをキャプチャし、3Dデータから独自のレンジマップを生成します。blaze Viewerによって生成されたレンジマップと、APIを使用してキャプチャされた「ロー」深度画像との唯一の違いは、スケールの違いです。
blaze Viewerは、取得したレンジマップを再スケーリングし、 [MinDepth..MaxDepth] のz値を [0..65535] のグレー値にマッピングします。これにより、表示(および保存)される画像のコントラストが向上します。この場合、次の式を適用する必要があります:
Distance Measured [mm] = DepthMin + (Pixel_Value x (DepthMax - DepthMin)) / 65535
このマッピングは、blaze viewerによって実行される深度データの唯一の処理であることに注意してください。
情報
blaze viewerを使用してレンジ画像を8ビット画像として保存する場合、16ビットデータが8ビットにマッピングされます。これは、 [MinDepth..MaxDepth] のz値が [0..255]にマッピングされることを意味します。したがって、これらの8ビットのグレー値をz値に変換するには、別の式が適用されます:
Distance Measured [mm] = DepthMin + (Pixel_Value x (DepthMax - DepthMin)) / 255
ただし、8ビットのレンジ画像の使用は推奨されません。256階調への削減により、量子化誤差に起因する大幅な精度低下が生じるためです。