Thin Plate Spline Warping

1 개요

Thin Plate Spline Warping 은 설정 된 제어 점들을 이용하여 Thin Plate spline interpolation 방식을 통해 이미지를 변환하는 알고리즘 입니다.

2 알고리즘 상세 설명

Thin Plate Spline Warping 알고리즘은 주어진 제어 점들의 Mapping 함수를 통해 유연한 곡선의 비선형 변환을 생성합니다.

Minimize :

Etps,smooth(f)=i=1Kyif(xi)2+λ[fx1x12+2fx1x2+fx2x22]dx1dx2\large \textbf{E}_{tps, smooth}(f) = \sum_{i=1}^{K}\left\| y_{i} -f(x_{i}) \right\|^{2}+\lambda \iint \left [ {f_{x_{1}x_{1}}}^{2} + 2{f_{x_{1}x_{2}}} + {f_{x_{2}x_{2}}}^{2}\right ] dx_{1}dx_{2}

Source Source points Dest points Result
Source Source Points Destination Points Result
Fig. 알고리즘 수행 결과

3 예제 코드

CThinPlateSplineWarping TPSWarping;

CFLImage fliSourceImage;
CFLImage fliDestinationImage;

TPSWarping.SetSourceImage(fliSourceImage);
TPSWarping.SetDestinationImage(fliDestinationImage);

// Calibrate
CFLPointArray flpaSource;

flpaSource.PushBack(CFLPoint<double>(0,0));
	//		. . .
flpaSource.PushBack(CFLPoint<double>(100.0, 100.0));


CFLPointArray flpaDestination;

flpaDestination.PushBack(CFLPoint<double>(10.0,10.0));
	//		. . .
flpaDestination.PushBack(CFLPoint<double>(90.0, 90.0));
TPSWarping.SetCalibrationPointArray(flpaSource, flpaDestination);

TPSWarping.Calibrate();

// Execute
TPSWarping.SetInterpolationMethod(EInterpolationMethod_Bicubic);

TPSWarping.Execute();
CThinPlateSplineWarping TPSWarping = new CThinPlateSplineWarping();

CFLImage fliSourceImage = new CFLImage();
CFLImage fliDestinationImage = new CFLImage();

TPSWarping.SetSourceImage(ref fliSourceImage);
TPSWarping.SetDestinationImage(ref fliDestinationImage);

// Calibrate
CFLPointArray flpaSource;

flpaSource.PushBack(new CFLPoint<double>(0,0));
	//		. . .
flpaSource.PushBack(new CFLPoint<double>(100.0, 100.0));


CFLPointArray flpaDestination;

flpaDestination.PushBack(new CFLPoint<double>(10.0,10.0));
	//		. . .
flpaDestination.PushBack(new CFLPoint<double>(90.0, 90.0));
TPSWarping.SetCalibrationPointArray(flpaSource, flpaDestination);

TPSWarping.Calibrate();

// Execute
TPSWarping.SetInterpolationMethod(EInterpolationMethod.Bicubic);

TPSWarping.Execute();

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

멤버함수 파라미터 설 명
SetInterpolationMethod EInterpolationMethod eMethod IN 연산 수행 시 보간 방법을 설정합니다.

연산 시 보간 방법을 설정합니다. eMethod - Default Value : EInterpolationMethod_Bilinear

멤버함수 파라미터 설 명
SetCalibrationPointArray CFLPointArray flpaSource IN 소스 캘리브레이션 포인트 배열
CFLPointArray flpaDestination IN 타겟 캘리브레이션 포인트 배열

Source및 Destination의 캘리브레이션 포인트를 설정 합니다.

멤버함수 파라미터 설 명
Calibrate - - - -

설정된 Source Points Array와 Destination Points Array로 Calibrate를 수행합니다.

멤버함수 파라미터 설 명
Load CFLPointArray flpaDestination IN Calibration 파일 경로 및 이름

저장된 캘리브레이션 파일을 로드합니다.

멤버함수 파라미터 설 명
Save CFLPointArray flpaDestination IN Calibration 파일 경로 및 이름

캘리브레이션 파일을 저장합니다.