Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

pointCloud

3차원 포인트 클라우드를 저장하기 위한 객체

설명

pointCloud 객체는 3차원 좌표계의 점 집합에서 포인트 클라우드 데이터를 만듭니다. 점은 일반적으로 샘플 곡면 또는 환경의 x, y, z 기하 좌표를 나타냅니다. 각 점을 RGB 색과 같은 추가 정보와 함께 나타낼 수도 있습니다. 포인트 클라우드 데이터는 속성에 나열된 속성을 갖는 객체로 저장됩니다. 객체 함수를 사용하여 포인트 클라우드 데이터에서 원하는 점을 검색, 선택 및 제거하십시오.

생성

설명

ptCloud = pointCloud(xyzPoints)xyzPoints로 지정된 좌표를 갖는 point cloud 객체를 반환합니다.

예제

ptCloud = pointCloud(xyzPoints,Name=Value)는 위에 열거된 구문의 인수 조합 외에 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어, pointCloud(xyzPoints,Color=[0 0 0])은 점 xyzPointsColor 속성을 [0 0 0]으로 설정합니다.

입력 인수

모두 확장

3차원 좌표 점으로, M×3 점 목록 또는 조직화된 포인트 클라우드의 M×N×3 배열로 지정됩니다. 3차원 좌표 점은 3차원 좌표 공간에서 점의 x, y, z 위치를 지정합니다. 조직화된 포인트 클라우드의 처음 2개 차원은 RGBD 또는 라이다와 같은 센서에서의 스캔 순서에 해당합니다. 이 인수는 Location 속성을 설정합니다.

데이터형: single | double

출력 인수

모두 확장

포인트 클라우드로, 속성에 나열된 속성을 갖는 pointCloud 객체로 반환됩니다.

속성

모두 확장

이 속성은 읽기 전용입니다.

3차원 좌표 공간에서 점들의 위치로, M×3 또는 M×N×3 배열로 지정됩니다. 각 요소는 3차원 좌표 공간에서 점의 x, y, z 좌표를 지정합니다. xyzPoints 입력 인수가 이 속성을 설정합니다.

  • 조직화되지 않은 포인트 클라우드의 경우 Location은 M×3 배열로 지정되어야 합니다. 여기서 M은 점의 총 개수이고 배열은 각 점의 x,y,z 좌표를 제공합니다.

  • 조직화된 포인트 클라우드의 경우 Location은 M×N×3 배열로 지정되어야 합니다. 여기서 M*N은 점의 총 개수이고 배열은 각 점의 x,y,z 좌표를 제공합니다. 투영 카메라(예: Kinect® 또는 라이다 센서)에서 얻은 점은 조직화된 포인트 클라우드로 저장됩니다. 조직화된 포인트 클라우드는 영상과 유사한 구조의 점들로 구성된 2차원 배열로 배치됩니다.

데이터형: single | double

포인트 클라우드 색으로, M×3 또는 M×N×3 배열로 지정됩니다. 이 속성을 사용하여 포인트 클라우드의 점들의 색을 설정합니다. 각 요소는 포인트 클라우드 데이터에 있는 점의 RGB 색을 지정합니다. 따라서 모든 점에 동일한 색을 지정하거나 각각의 점에 다른 색을 지정할 수 있습니다.

  • Color의 데이터형을 single 또는 double로 지정할 경우, 지정된 RGB 값은 범위 [0, 1] 내에 있어야 합니다.

  • Color의 데이터형을 uint8로 지정할 경우, 지정된 RGB 값은 범위 [0, 255] 내에 있어야 합니다.

좌표Color의 유효한 할당
M×3 배열각 점의 RGB 값이 포함된 M×3 배열

M×N×3 배열각 점의 RGB 값이 포함된 M×N×3 배열

데이터형: uint8

곡면 법선으로, M×3 또는 M×N×3 배열로 지정됩니다. 이 속성을 사용하여 포인트 클라우드의 각 점에 대한 법선 벡터를 지정합니다. 곡면 법선의 각 요소는 법선 벡터의 x, y, z 성분을 지정합니다.

좌표곡면 법선
M×3 배열M×3 배열. 여기서 각 행은 대응하는 법선 벡터를 포함합니다.
M×N×3 배열각 점의 1×1×3 법선 벡터가 포함된 M×N×3 배열.

데이터형: single | double

각 점에서의 회색조 명암으로, M×1 벡터 또는 M×N 행렬로 지정됩니다. 이 함수는 현재 컬러맵의 색 값에 각 명암 값을 매핑합니다.

좌표명암
M×3 배열M×1 벡터. 여기서 각 행은 대응하는 명암 값을 포함합니다.
M×N×3 배열각 점의 명암 값이 포함된 M×N 행렬.

데이터형: single | double | uint8 | uint16

이 속성은 읽기 전용입니다.

포인트 클라우드의 점 개수로, 양의 정수로 저장됩니다.

이 속성은 읽기 전용입니다.

x축을 따르는 좌표의 범위로, 1×2 벡터로 저장됩니다.

이 속성은 읽기 전용입니다.

y축을 따르는 좌표의 범위로, 1×2 벡터로 저장됩니다.

이 속성은 읽기 전용입니다.

z축을 따르는 좌표의 범위로, 1×2 벡터로 저장됩니다.

객체 함수

findNearestNeighborsFind nearest neighbors of a point in point cloud
findNeighborsInRadiusFind neighbors within a radius of a point in the point cloud
findPointsInROIFind points within a region of interest in the point cloud
removeInvalidPointsRemove invalid points from point cloud
selectSelect points in point cloud
copyCopy array of point cloud objects

예제

모두 축소

3차원 좌표 점을 작업 공간으로 읽어 들입니다.

load('xyzPoints');

입력 점 좌표로부터 point cloud 객체를 만듭니다.

ptCloud = pointCloud(xyzPoints);

point cloud 객체의 속성을 검사합니다.

ptCloud
ptCloud = 
  pointCloud with properties:

     Location: [5184x3 single]
        Count: 5184
      XLimits: [-3 3.4338]
      YLimits: [-2 2]
      ZLimits: [0.0016 3.1437]
        Color: []
       Normal: []
    Intensity: []

pcshow를 사용하여 포인트 클라우드를 표시합니다.

pcshow(ptCloud)

Figure contains an axes object. The axes object contains an object of type scatter.

포인트 클라우드 데이터의 색 수정하기

포인트 클라우드 데이터와 동일한 크기의 RGB 색 배열을 만듭니다. 점 색을 빨간색으로 설정합니다.

cmatrix = ones(size(ptCloud.Location)).*[1 0 0];

색 속성이 RGB 색 배열로 설정된 point cloud 객체를 만듭니다.

ptCloud = pointCloud(xyzPoints,'Color',cmatrix);
pcshow(ptCloud)

Figure contains an axes object. The axes object contains an object of type scatter.

포인트 클라우드 데이터에 곡면 법선 추가하기

pcnormals를 사용하여 포인트 클라우드 데이터에 대응하는 곡면 법선을 계산합니다.

normals = pcnormals(ptCloud);

입력 점 좌표로부터 point cloud 객체를 만듭니다. 계산된 곡면 법선을 point cloud 객체에 추가합니다.

ptCloud = pointCloud(xyzPoints,'Normal',normals);

포인트 클라우드를 표시하고 곡면 법선을 플로팅합니다.

pcshow(ptCloud)
x = ptCloud.Location(:,1);
y = ptCloud.Location(:,2);
z = ptCloud.Location(:,3);
u = normals(:,1);
v = normals(:,2);
w = normals(:,3);
hold on
quiver3(x,y,z,u,v,w);
hold off

Figure contains an axes object. The axes object contains 2 objects of type scatter, quiver.

pointCloud 객체는 handle 객체입니다. 포인트 클라우드의 개별 복사본을 만들기 위해 MATLAB® copy 메서드를 사용할 수 있습니다.

ptCloudB = copy(ptCloudA)

포인트 클라우드 함수로 포인트 클라우드를 수정하고 그 사본 한 개만 유지하는 경우에는 입력 인수와 출력 인수에 동일한 포인트 클라우드 변수 이름을 사용하십시오.

ptCloud = pcFunction(ptCloud)

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2015a에 개발됨