blaze: 깊이 정보를 RGB 이미지로 시각화하기#
Basler blaze-101 카메라를 사용 중이며 깊이 정보를 컬러 이미지에 매핑하고자 합니다.
깊이 정보를 RGB 이미지로 시각화하는 방법에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
이 기술 문서는 몇 가지 추가 정보를 제공합니다.
Scaling 인자는 카메라가 Short 또는 Long Range로 작동하는지 여부와 무관합니다. 깊이 이미지는 강도(intensity) 이미지와 완전히 독립적이므로, 좌표 계산은 강도 이미지와 무관합니다. 계산 방식은 Range Map을 캡처하는 방법에 따라 달라집니다.
blaze Legacy SDK 또는 pylon SDK를 사용하여 획득한 Range Map#
pylon API 또는 ROS 드라이버로 캡처한 원시(raw) 이미지는 [0mm..10000mm] z-값을 [0..65535] 회조 값으로 매핑하여 생성됩니다.
다음에서 제공하는 Scaling 인자를 사용하십시오. gray2mm == Scan3dCoordinateScale. DepthMin 및 DepthMax 파라미터는 고려할 필요가 없습니다.
blaze-101의 경우, gray2mm 은(는) 상수 값이며 gray2mm = 10000/65535 = 0.15259입니다. 그 결과는 다음과 같습니다.
측정된 거리 [mm] = Gray_Value * gray2mm = Gray_Value * 0.15259
blaze Viewer를 사용하여 획득한 Range Map#
blaze Viewer는 포인트 클라우드 데이터를 캡처하고 3D 데이터로부터 자체 Range Map을 생성합니다. blaze Viewer가 생성한 Range Map과 API를 사용하여 캡처한 "원시(raw)" 깊이 이미지 간의 유일한 차이점은 스케일의 차이뿐입니다.
blaze Viewer는 획득한 Range Map을 가져와서 재스케일링하며, [MinDepth..MaxDepth] z-값을 [0..65535] 회조 값에 매핑합니다. 이를 통해 표시(및 저장)되는 이미지의 대비가 향상됩니다. 이 경우 다음 공식을 적용해야 합니다.
측정된 거리 [mm] = DepthMin + (Pixel_Value x (DepthMax - DepthMin)) / 65535
이 매핑은 blaze Viewer가 수행하는 깊이 데이터에 대한 유일한 처리 과정임에 유의하십시오.
정보
blaze Viewer를 사용하여 Range 이미지들을 8비트 이미지로 저장하는 경우, 16비트 데이터가 8비트로 매핑됩니다. 즉, [MinDepth..MaxDepth] z-값이 [0..255]에 매핑됩니다. 따라서 이러한 8비트 회조 값을 z-값으로 변환하려면 다음과 같은 다른 공식이 적용됩니다.
측정된 거리 [mm] = DepthMin + (Pixel_Value x (DepthMax - DepthMin)) / 255
하지만 8비트 범위 이미지를 사용하는 것은 권장되지 않습니다. 256개의 서로 다른 회절 값으로 축소되면 양자화 오차로 인해 정밀도가 크게 저하되기 때문입니다.