16.3. Distance Transform
1 개요
영점과의 거리를 측정하는 연산입니다.
2 알고리즘 상세 설명
Measure Method | Explain | Example Image |
---|---|---|
City Block | 맞닿은 픽셀과의 거리를 1로 보고 연산을 진행합니다. | ![]() |
Chessboard | 대각선을 포함한 인접한 거리를 1로 보고 연산을 진행합니다. | ![]() |
Euclid | 픽셀과의 직선 거리로 연산을 진행합니다. | ![]() |
Quasi-Euclid | 대각선 선분만 유클리드 성분을 따라 연산을 진행합니다. | ![]() |
Fig. 거리 측정법 종류
왼쪽 위(0,0) 지점에 0 이 있는 이미지를 예시로 연산한 결과입니다.

Fig. 원본 이미지
Measure Method | Example Image |
---|---|
City Block | ![]() |
Chessboard | ![]() |
Euclid | ![]() |
Quasi-Euclid | ![]() |
Fig. 이미지 예시
3 파라미터 설정 및 사용 방법
SetMeasurementMethod(EMeasurementMethod eMeasurementMethod = EMeasurementMethod_CityBlock)
EMeasurementMethod_CityBlock
: CityBlock 방식으로 연산을 수행합니다.EMeasurementMethod_Chessboard
: Chessboard 방식으로 연산을 수행합니다.EMeasurementMethod_Euclid
: Chessboard 방식으로 연산을 수행합니다.EMeasurementMethod_QuasiEuclid
: Chessboard 방식으로 연산을 수행합니다.
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();