CloudCompure에서 PCD 파일의 사용자 정의 필드

1778 단어 PCLCloudComparepcd

정말 난처하다


CloudCompore에서 PCD 형식의 점 그룹 파일을 읽고 시각화 확인을 할 때의 일입니다.점 그룹에는 xyz 좌표와 RGB 채널 외에도 클러스터를 식별하는 사용자 정의 필드(4byte unsigned int)가 기록되어 있습니다.PCD 파일은 PCL 라이브러리label 형식으로 내보낸 파일입니다.

설정pcl::PointXYZRGBL, 당연히 이런 느낌으로 나오길 기대...

실제로 보이는 화면은 파란색!Property->Colors->Scalar field의 값이 0에 붙어있다!?

컨디션

  • PCL 1.9.1 x64
  • CloudCompare v2.10.2 Stereo 64bit
  • 까닭


    CloudCommpare는 기호가 없는 정수 형식의 사용자 정의 필드를 PCD로 읽지 않을 것 같습니다.한 번 해보면 숫자를 정확하게 읽을 수 있는 건...
  • 부동점형
  • 기호가 있는 정수형
  • 또한 CloudCompore에서 PCD로 점 그룹을 내보낼 때 사용자 정의 필드를 부동점(4byte flat)으로 강제로 변경합니다.현재 버전에서도 출력할 때 값의 유형을 선택하는 등 옵션이 없습니다.

    처리 방법


    가장 간단한 것은 CloudCompore에서 기호와 정수로 읽으십시오.label의 범위의 값은 기호가 있고 32비트의 비트레이트가 없어도 같은 값이기 때문에 2진법 형식이라도 데이터의 내용을 가지고 놀 필요가 없다.PCD 파일의 헤드를 약간 변경할 수 있습니다.0 ~ 2^31-1의 유형label에 대한 정보를 U->I로 변경합니다.

  • Unsigned Int

  • Int (signed)
  • *.pcd
      # .PCD v0.7 - Point Cloud Data 
      file format
      VERSION 0.7
      FIELDS x y z rgba label
      SIZE 4 4 4 4 4
    - TYPE F F F U U
    + TYPE F F F U I
      COUNT 1 1 1 1 1
      WIDTH 1858475
      HEIGHT 1
      VIEWPOINT 0 0 0 1 0 0 0
      POINTS 1858475
      DATA binary
      ...binary data is written here...
    
    매번 이 일을 할 때마다 번거롭기 때문TYPEsigned int형 같은 것은 미리 준비하면 편리하다.

    좋은 웹페이지 즐겨찾기