Main Content

pointCloud

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

설명

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

생성

설명

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

ptCloud = pointCloud(xyzPoints,Color=color)는 포인트 클라우드의 색도 설정합니다.

예제

ptCloud = pointCloud(___,Name=Value)는 위에 열거된 구문 외에 하나 이상의 이름-값 인수를 사용하여 속성을 설정합니다. 예를 들어 Count=5184는 포인트 클라우드에 있는 점의 개수를 5148로 설정합니다.

입력 인수

모두 확장

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

데이터형: single | double

포인트 클라우드 색으로, 색 문자열, 1×3 벡터, M×3 또는 M×N×3 행렬 중 하나로 지정되는 RGB 값입니다. M×N은 포인트 클라우드의 차원을 지정합니다. 각 요소는 포인트 클라우드 데이터에 있는 점의 RGB 색을 지정합니다. 따라서 모든 점에 동일한 색을 지정하거나 각각의 점에 다른 색을 지정할 수 있습니다.

  • single 또는 double 데이터형의 경우 Color RGB 값을 [0, 1] 범위로 지정해야 합니다.

  • uint8 데이터형의 경우 Color RGB 값을 [0, 255] 범위로 지정해야 합니다.

  • uint16 데이터형의 경우 Color RGB 값을 [0, 65535] 범위로 지정해야 합니다.

  • 이 함수는 Color 값을 M×3 또는 M×N×3으로 저장합니다. 색을 문자열 또는 1×3 벡터로 지정하면 함수는 색을 다음의 차원 중 하나로 변환합니다.

형식
모든 점에 대해 하나의 색 지정

string형 스칼라 또는 문자형 벡터

"r"

"red"

1×3 벡터

[255 0 0]1-by-3 grid, with columns labeled r,g,b respectively.

각 점에 대해 색 지정

문자형 벡터로 구성된 셀형 배열

["red","yellow","blue"]

M×3 행렬(RGB 값 목록으로 지정)

255 0 0
255 0 0
0 255 255
M-by-3 grid, with columns labeled r,g,b respectively.

각 점의 RGB 값이 포함된 정렬 포인트 클라우드를 나타내는 M×N×3 행렬. 여기서 M×N은 포인트 클라우드의 차원입니다.

M-by-N-by3 grid, with 3 m-by-n matrices labeled r,g,b respectively.

데이터형: uint8 | uint16

출력 인수

모두 확장

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

속성

모두 확장

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

3차원 좌표 공간에서 점들의 위치로, M×3 또는 M×N×3 배열로 지정됩니다. 각 요소는 3차원 좌표 공간에서 점의 x, y, z 좌표를 지정합니다. xyzPoints 입력 인수가 이 속성을 설정합니다. 메모리 사용량을 줄이기 위해 점 위치를 single 데이터형으로 저장할 수 있습니다.

  • 비정렬 포인트 클라우드의 경우 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 행렬로 지정됩니다. M×N은 포인트 클라우드의 차원을 지정합니다. 각 요소는 포인트 클라우드 데이터에 있는 점의 RGB 색을 지정합니다. 이 속성은 color 입력 인수로 설정됩니다. 이 객체는 해당 입력값에 의해 설정된 색 형식을 M×3 또는 M×N×3 행렬로 변환합니다. 색을 설정하는 방법에 대한 자세한 내용은 color 입력값 설명 섹션에 있는 색 입력 옵션 표를 참조하십시오.

데이터형: uint8 | uint16

곡면 법선으로, 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)

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

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

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

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

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

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

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

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

ptCloudB = copy(ptCloudA)

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

ptCloud = pcFunction(ptCloud)

확장 기능

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

버전 내역

R2015a에 개발됨

모두 확장