16.3. Distance Transform

1 개요

영점과의 거리를 측정하는 연산입니다.

2 알고리즘 상세 설명

Measure Method Explain Example Image
City Block 맞닿은 픽셀과의 거리를 1로 보고 연산을 진행합니다. Example Image
Chessboard 대각선을 포함한 인접한 거리를 1로 보고 연산을 진행합니다. Example Image
Euclid 픽셀과의 직선 거리로 연산을 진행합니다. Example Image
Quasi-Euclid 대각선 선분만 유클리드 성분을 따라 연산을 진행합니다. Example Image
Fig. 거리 측정법 종류

왼쪽 위(0,0) 지점에 0 이 있는 이미지를 예시로 연산한 결과입니다.

ROI Result

Fig. 원본 이미지

Measure Method Example Image
City Block Example Image
Chessboard Example Image
Euclid Example Image
Quasi-Euclid Example Image
Fig. 이미지 예시

3 파라미터 설정 및 사용 방법

4 예제 코드

CFLImage fliSourceImage;
CFLImage fliDestinationImage;

fliSourceImage.Load(L"ExampleImages/DistanceTransform/circle.flif");

CDistanceTransform distanceTransform;
//////////////////////////////////
// 공통 파라미터 설정
//////////////////////////////////
distanceTransform.SetSourceImage(fliSourceImage);
distanceTransform.SetDestinationImage(fliDestinationImage);
distanceTransform.SetMeasurementMethod(EMeasurementMethod_CityBlock);

distanceTransform.Execute();
CFLImage fliSourceImage = new CFLImage();
CFLImage fliDestinationImage = new CFLImage();

fliSourceImage.Load("ExampleImages/DistanceTransform/circle.flif");

CDistanceTransform distanceTransform = new CDistanceTransform();
//////////////////////////////////
// 공통 파라미터 설정
//////////////////////////////////
distanceTransform.SetSourceImage(ref fliSourceImage);
distanceTransform.SetDestinationImage(ref fliDestinationImage);
distanceTransform.SetMeasurementMethod(EMeasurementMethod.CityBlock);

distanceTransform.Execute();