Main Content

fitgeotrans

(권장되지 않음) 제어점 쌍에 기하 변환 피팅

fitgeotrans는 권장되지 않습니다. 대신 fitgeotform2d 함수를 사용하십시오. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.

설명

예제

tform = fitgeotrans(movingPoints,fixedPoints,tformType)는 유형 tformType의 선형 기하 변환을 제어점 쌍 movingPointsfixedPoints에 피팅합니다.

tform = fitgeotrans(movingPoints,fixedPoints,"polynomial",degree)PolynomialTransformation2D 객체를 제어점 쌍 movingPointsfixedPoints에 피팅합니다. 다항식 변환의 차수를 2, 3 또는 4로 지정합니다.

tform = fitgeotrans(movingPoints,fixedPoints,"pwl")PiecewiseLinearTransformation2D 객체를 제어점 쌍 movingPointsfixedPoints에 피팅합니다. 이 변환은 고정 제어점의 들로네 삼각분할을 만들고 이동 제어점을 대응되는 고정 제어점에 매핑합니다. 다른 아핀 변환이 각 국소 영역의 제어점을 매핑합니다. 매핑은 제어점에서 연속이지만 연속해서 미분 가능하지는 않습니다.

tform = fitgeotrans(movingPoints,fixedPoints,"lwm",n)LocalWeightedMeanTransformation2D 객체를 제어점 쌍 movingPointsfixedPoints에 피팅합니다. 국소 가중 평균 변환은 각 제어점에서 인접 제어점을 사용하여 다항식을 추론하는 방법으로 매핑을 생성합니다. 어느 임의 위치에서의 매핑은 이 다항식의 가중 평균에 따라 달라집니다. n개의 최근접 점을 사용하여 각 제어점 쌍에 대한 2차 다항식 변환을 추론합니다.

예제

모두 축소

체커보드 영상을 만들고 회전하여 정렬이 맞지 않는 영상을 만듭니다.

I = checkerboard(40);
J = imrotate(I,30);
imshowpair(I,J,"montage")

Figure contains an axes object. The axes object contains an object of type image.

고정 영상(체커보드) 및 이동 영상(회전된 체커보드)에서 몇 개의 일치하는 제어점을 정의합니다. 제어점 선택 툴을 사용하여 대화형 방식으로 점을 정의할 수 있습니다.

fixedPoints = [41 41; 281 161];
movingPoints = [56 175; 324 160];

두 영상을 정렬하는 데 쓰일 수 있는 아핀 기하 변환을 만듭니다.

tform = fitgeotform2d(movingPoints,fixedPoints,"similarity");

tform 추정값을 사용하여 회전된 영상을 리샘플링하고 고정 영상과 정합을 수행합니다. 오버레이 영상에서 녹색과 자홍색의 가색상으로 표시되는 영역은 정합 오류를 나타냅니다. 이 오류는 제어점에 정확한 대응 관계가 없기 때문에 발생합니다.

Jregistered = imwarp(J,tform,OutputView=imref2d(size(I)));
imshowpair(I,Jregistered)

Figure contains an axes object. The axes object contains an object of type image.

입력 인수

모두 축소

이동 영상에 있는 제어점으로, m×2 행렬로 지정됩니다. 각 행은 제어점의 (x, y) 좌표를 지정합니다.

예: movingPoints = [11 11; 41 71];

데이터형: double | single

고정 영상에 있는 제어점으로, m×2 행렬로 지정됩니다. 각 행은 제어점의 (x, y) 좌표를 지정합니다.

예: fixedPoints = [14 44; 70 81];

데이터형: double | single

선형 변환 유형으로, "nonreflectivesimilarity", "similarity", "affine" 또는 "projective"로 지정됩니다. 자세한 내용은 변환 유형 항목을 참조하십시오.

데이터형: char | string

다항식 차수로, 정수 2, 3 또는 4로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

국소 가중 평균 계산에 쓰일 점의 개수로, 양의 정수로 지정됩니다. n의 최솟값은 6이지만, n의 값이 작으면 나쁜 조건의 다항식이 생성될 위험이 있습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

변환으로, 기하 변환 객체로 반환됩니다. 객체 유형은 변환 유형에 따라 달라집니다.

변환 유형

기하 변환 객체
"nonreflectivesimilarity"affine2d
"similarity"affine2d
"affine"affine2d
"projective"projective2d
"polynomial"PolynomialTransformation2D
"pwl"PiecewiseLinearTransformation2D
"lwm"LocalWeightedMeanTransformation2D

세부 정보

모두 축소

변환 유형

다음 표에는 fitgeotrans가 지원하는 모든 변환 유형이 복잡도순으로 나열되어 있습니다.

변환 유형

설명제어점 쌍의 최소 개수
"nonreflectivesimilarity"이동 영상의 형태는 그대로 유지하지만 평행 이동, 회전, 스케일링을 조합하여 영상을 왜곡할 때 이 변환을 사용합니다. 직선은 직선 상태를, 평행선은 평행선 상태를 유지합니다. 2

Original and transformed checkerboard image. The transformed image appears rotated 45 degrees counter-clockwise.

"similarity"선택적으로 반사를 추가하는 것만 제외하고 "nonreflectivesimilarity"와 동일합니다.3

Original and transformed checkerboard image. The transformed image appears rotated 45 degrees counter-clockwise and reflected along its vertical axis.

"affine"이동 영상의 형태를 전단할 때 이 변환을 사용합니다. 직선은 직선 상태를, 평행선은 평행선 상태를 유지하지만 사각형은 평행사변형이 됩니다.3

Original and transformed checkerboard image. The transformed image appears sheared in the horizontal direction.

"projective"장면이 기울어져 보이는 경우 이 변환을 사용합니다. 직선은 직선 상태를 유지하지만 평행선은 소실점을 향해 수렴합니다.4

Original and transformed checkerboard image. The transformed image appears tilted out of plane of the image.

"polynomial"영상 속 객체가 곡선 모양으로 휘어진 경우 이 변환을 사용합니다. 다항식 차수가 높을수록 피팅이 좋지만, 그 결과물에 포함된 곡선이 고정 영상보다 많아질 수 있습니다.

6(차수 2)

10(차수 3)

15(차수 4)

Original and transformed checkerboard image. The transformed image appears curved.

"pwl"영상의 일부분을 다르게 왜곡할 때 이 변환(조각별 선형)을 사용합니다.4

Original and transformed checkerboard image. The right side of the transformed image appears stretched horizontally.

"lwm"왜곡이 국소적으로 변동하고 조각별 선형으로 충분하지 않은 경우 이 변환(국소 가중 평균)을 사용합니다. 6(12 권장됨)

Original and transformed checkerboard image. The transformed image appears nonuniformly stretched.

참고 문헌

[1] Goshtasby, Ardeshir. “Piecewise Linear Mapping Functions for Image Registration.” Pattern Recognition 19, no. 6 (January 1986): 459–66. https://doi.org/10.1016/0031-3203(86)90044-0.

[2] Goshtasby, Ardeshir. “Image Registration by Local Approximation Methods.” Image and Vision Computing 6, no. 4 (November 1988): 255–61. https://doi.org/10.1016/0262-8856(88)90016-9.

확장 기능

버전 내역

R2013b에 개발됨

모두 확장

R2022b: 권장되지 않음

R2022b부터 대부분의 Image Processing Toolbox™ 함수는 전위곱 규칙을 사용하여 기하 변환을 만들고 수행합니다. 그러나 fitgeotrans 함수는 후위곱 규칙을 사용하여 선형 기하 변환을 추정합니다. 현재로서는 fitgeotrans를 제거할 계획이 없지만 전위곱 규칙을 지원하는 fitgeotform2d 함수로 전환하여 기하 변환 워크플로를 간소화할 수 있습니다. 자세한 내용은 Migrate Geometric Transformations to Premultiply Convention 항목을 참조하십시오.

코드를 업데이트하려면 함수 이름 fitgeotransfitgeotform2d로 변경하십시오. 다음 두 가지 변환 유형에 대해 tformType 값도 변경해야 합니다.

  • "nonreflectivesimilarity""similarity"로 바꿉니다. "similarity" 변환 유형은 평행 이동, 회전, 스케일링을 지원하며 반사는 지원하지 않습니다.

  • "similarity""reflectivesimilarity"로 바꿉니다. "reflectivesimilarity" 변환은 평행 이동, 회전, 스케일링, 반사를 지원합니다.

다른 인수는 변경할 필요가 없습니다.

권장되지 않는 사용법권장되는 대체 방법

이 예제에서는 fitgeotrans 함수를 사용하여 3개의 제어점 쌍에서 2차원 아핀 변환을 추정합니다.

mp = [14.5 44.6; 31.8 34.8; 44.4 96.9];
fp = [10.5 10.5; 30.5 10.5; 10.5 70.5];
tform = fitgeotrans(mp,fp,"affine");

이 예제에서는 fitgeotform 함수를 사용하여 3개의 제어점 쌍에서 2차원 아핀 변환을 추정합니다.

mp = [14.5 44.6; 31.8 34.8; 44.4 96.9];
fp = [10.5 10.5; 30.5 10.5; 10.5 70.5];
tform = fitgeotform2d(mp,fp,"affine");

이 예제는 평행 이동, 회전, 등방성 스케일링으로만 구성된 2차원 아핀 변환을 추정합니다.

mp = [14.5 44.6; 31.8 34.8; 44.4 96.9];
fp = [10.5 10.5; 30.5 10.5; 10.5 70.5];
tform = fitgeotrans(mp,fp,"nonreflectivesimilarity");

이 예제는 평행 이동, 회전, 등방성 스케일링으로만 구성된 2차원 아핀 변환을 추정합니다.

mp = [14.5 44.6; 31.8 34.8; 44.4 96.9];
fp = [10.5 10.5; 30.5 10.5; 10.5 70.5];
tform = fitgeotform2d(mp,fp,"similarity");

이 예제는 평행 이동, 회전, 등방성 스케일링, 반사로만 구성된 2차원 아핀 변환을 추정합니다.

mp = [14.5 44.6; 31.8 34.8; 44.4 96.9];
fp = [10.5 10.5; 30.5 10.5; 10.5 70.5];
tform = fitgeotrans(mp,fp,"similarity");

이 예제는 평행 이동, 회전, 등방성 스케일링, 반사로만 구성된 2차원 아핀 변환을 추정합니다.

mp = [14.5 44.6; 31.8 34.8; 44.4 96.9];
fp = [10.5 10.5; 30.5 10.5; 10.5 70.5];
tform = fitgeotform2d(mp,fp,"reflectivesimilarity");