Denoising 3D

1 개요

포인트 클라우드 Denoising 알고리즘입니다. MLS(Moving Least Square)기반 알고리즘인 Smoothing3D와 Edge와 같은 Sharp Feature의 유지 측면에서 결과 차이가 있습니다.

2 알고리즘 상세 설명

Noisy Object Smoothing Result Denoising Result
Source  Object Smoothing Result Denoising Result
Fig. 노이즈 3D 데이터, Smoothing 3D 결과, Denoising 3D 결과

3 파라미터 설정

(n^jn^iσ)2\left(\frac{\|\hat{n}_j - \hat{n}_i\|}{\sigma}\right)^2

(vjviσR)2\left(\frac{\|v_j - v_i\|}{\sigma_R}\right)^2

4 예제 코드

CDenoising3D denoising3D;

CFL3DObject floSource;
CFL3DObject floDestination;

denoising3D.SetSourceObject(floSource);
denoising3D.SetDestinationObject(floDestination);

// 노이즈가 일반적인 경우
denoising3D.SetLambda(0.1f);

// 노이즈가 거의 없는 경우
denoising3D.SetLambda(1);

// 노이즈가 심한 경우
denoising3D.SetLambda(0.05f);

denoising3D.Execute();
CDenoising3D denoising3D = new CDenoising3D();

CFL3DObject floSource = new CFL3DObject();
CFL3DObject floDestination = new CFL3DObject();

Denoisdenoising3Ding3D.SetSourceObject(ref floSource);
denoising3D.SetDestinationObject(ref floDestination);

// 노이즈가 일반적인 경우
denoising3D.SetLambda(0.1f);

// 노이즈가 거의 없는 경우
denoising3D.SetLambda(1);

// 노이즈가 심한 경우
denoising3D.SetLambda(0.05f);

Denoising3D.Execute();


denoising3D = CDenoising3D()

floSource = CFL3DObject()
floDestination = CFL3DObject()

denoising3D.SetSourceObject(floSource)
denoising3D.SetDestinationObject(floDestination)

# 노이즈가 일반적인 경우
denoising3D.SetLambda(0.1)

# 노이즈가 거의 없는 경우
denoising3D.SetLambda(1)

# 노이즈가 심한 경우
denoising3D.SetLambda(0.05)

denoising3D.Execute()