blaze:將深度資訊視覺化為 RGB 影像#
您正在使用 Basler blaze-101 相機,並希望將深度資訊對應至彩色影像。
您可以在這裡找到關於如何將深度資訊視覺化為 RGB 影像的詳細資訊。
這篇知識庫文章提供了一些額外資訊。
Scaling 係數與相機是在 Short Range 還是 Long Range 下運作無關。深度影像與強度影像完全獨立,也就是說,座標的計算與強度影像無關。計算方式取決於您如何擷取 range map。
使用 blaze Legacy SDK 或 pylon SDK 擷取的 Range Maps#
使用 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 擷取的 Range Map#
blaze Viewer 會擷取點雲資料,並從 3D 資料產生自己的 range map。由 blaze Viewer 產生的 range map 與使用 API 擷取的「原始」深度影像之間,唯一的差異在於不同的縮放比例。
blaze Viewer 會取得擷取的 range map 並重新進行 Scaling,將 [MinDepth..MaxDepth] z 值對應至 [0..65535] 灰階值。這會增強顯示(以及儲存)影像的對比度。在這種情況下,必須套用以下公式:
Distance Measured [mm] = DepthMin + (Pixel_Value x (DepthMax - DepthMin)) / 65535
請注意,此對應是 blaze viewer 對深度資料執行的唯一處理。
資訊
如果您使用 blaze viewer 將 range 影像儲存為 8 位元影像,16 位元資料將會被對應至 8 位元。這意味著 [MinDepth..MaxDepth] z 值將被對應至 [0..255]。因此,若要將這些 8 位元灰階值轉換回 z 值,需套用不同的公式:
Distance Measured [mm] = DepthMin + (Pixel_Value x (DepthMax - DepthMin)) / 255
不過,不建議使用 8-bit 範圍影像,因為縮減至 256 種不同的灰階值會因量化誤差而導致精確度顯著下降。