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")

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

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)

입력 인수

모두 축소

이동 영상에 있는 제어점으로, 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에 개발됨

모두 확장