コンテンツにスキップ
ステージングサーバー
開発サーバー

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階調への削減により、量子化誤差に起因する大幅な精度低下が生じるためです。

ナレッジ記事に戻る