Main Content

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

pcdenoise

3차원 포인트 클라우드에서 잡음 제거

설명

예제

ptCloudOut = pcdenoise(ptCloudIn)은 이상값을 제거하는 필터링된 포인트 클라우드를 반환합니다.

[ptCloudOut,inlierIndices,outlierIndices] = pcdenoise(ptCloudIn) 은 정상값과 이상값으로 식별된 점에 대한 선형 인덱스를 추가로 반환합니다.

[ptCloudOut,___] = pcdenoise(___Name,Value)는 위에 열거된 구문과 함께 하나 이상의 Name,Value 쌍 인수로 지정된 추가 옵션을 사용합니다.

예제

모두 축소

평면 포인트 클라우드를 만듭니다.

gv = 0:0.01:1;
[X,Y] = meshgrid(gv,gv);
ptCloud = pointCloud([X(:),Y(:),0.5*ones(numel(X),1)]);

figure
pcshow(ptCloud);
title('Original Data');

Figure contains an axes object. The axes object with title Original Data contains an object of type scatter.

균일하게 분포된 랜덤 잡음을 추가합니다.

noise = rand(500, 3);
ptCloudA = pointCloud([ptCloud.Location; noise]);

figure
pcshow(ptCloudA);
title('Noisy Data');

Figure contains an axes object. The axes object with title Noisy Data contains an object of type scatter.

이상값을 제거합니다.

ptCloudB = pcdenoise(ptCloudA);

figure;
pcshow(ptCloudB);
title('Denoised Data');

Figure contains an axes object. The axes object with title Denoised Data contains an object of type scatter.

입력 인수

모두 축소

포인트 클라우드로, pointCloud 객체로 지정됩니다.

이름-값 인수

예: 'Threshold',1.0은 임계값을 1.0으로 설정합니다.

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

최근접이웃 점 개수로, 'NumNeighbors'와 함께 양의 정수(단위: 픽셀)가 쉼표로 구분되어 지정됩니다. 이 값은 모든 점의 이웃까지의 평균 거리에 대한 평균을 추정하는 데 사용됩니다. 이 값을 낮추면 필터가 잡음에 더 민감해집니다. 이 값을 높이면 계산 횟수가 증가합니다.

데이터형: single | double

이상값 임계값으로, 'Threshold'와 함께 스칼라가 쉼표로 구분되어 지정됩니다. 기본적으로, 임계값은 모든 점의 이웃까지의 평균 거리에 대한 평균에서 1 표준편차만큼 떨어진 값입니다. k-최근접이웃까지의 평균 거리가 지정된 임계값보다 높은 점은 이상값으로 간주됩니다.

데이터형: single | double

출력 인수

모두 축소

필터링된 포인트 클라우드로, pointCloud 객체로 반환됩니다.

정상값 점의 선형 인덱스로, 1×N 벡터로 반환됩니다.

데이터형: uint32

이상값 점의 선형 인덱스로, 선형 인덱스로 구성된 1×N 벡터로 반환됩니다.

데이터형: uint32

참고 문헌

[1] Rusu, R. B., Z. C. Marton, N. Blodow, M. Dolha, and M. Beetz. “Towards 3D Point Cloud Based Object Maps for Household Environments”. Robotics and Autonomous Systems Journal. 2008.

확장 기능

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

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

버전 내역

R2015a에 개발됨