Main Content

기하 변환의 행렬 표현

선형 기하 변환을 숫자형 행렬로 나타낼 수 있습니다. 평행 이동, 스케일링, 회전, 반사와 같은 각 변환 유형은 요소가 특정 패턴을 따르는 행렬을 사용하여 정의됩니다. 변환을 나타내는 복합 행렬을 생성하여 여러 변환을 조합할 수 있습니다. 자세한 내용은 Create Composite 2-D Affine Transformations 항목을 참조하십시오.

2차원 아핀 변환

다음 표에는 2차원 아핀 변환과 이를 정의하는 데 사용되는 변환 행렬이 나열되어 있습니다. 2차원 아핀 변환의 경우 마지막 행은 [0 0 1]이어야 합니다.

  • 2차원 평행 이동 행렬을 조합하여 평행 이동 변환을 나타내는 transltform2d 객체를 만듭니다.

  • 2차원 평행 이동 행렬과 회전 행렬을 조합하여 비반사적 강체 변환을 나타내는 rigidtform2d 객체를 만듭니다.

  • 2차원 평행 이동 행렬, 회전 행렬, 스케일링 행렬을 조합하여 비반사적 유사 변환을 나타내는 simtform2d 객체를 만듭니다.

  • 2차원 변환 행렬을 조합하여 일반 아핀 변환을 나타내는 affinetform2d 객체를 만듭니다.

2차원 아핀 변환예(원본 영상과 변환된 영상)변환 행렬
평행 이동

Original and translated checkerboard images. The axes limits indicate that the image has been translated horizontally and vertically.

[10tx01ty001]

txx축을 따라 변위를 지정합니다.

tyy축을 따라 변위를 지정합니다.

픽셀 좌표에 대한 자세한 내용은 영상 좌표계 항목을 참조하십시오.

스케일링

Original and scaled checkerboard image. The scaled image appears stretched in the horizontal direction.

[sx000sy0001]

sxx축을 따라 스케일링 인자를 지정합니다.

syy축을 따라 스케일링 인자를 지정합니다.

전단

Original and sheared checkerboard image. The sheared image appears stretched along the horizontal axis.

[1shx0shy10001]

shxx축을 따라 전단 인자를 지정합니다.

shyy축을 따라 전단 인자를 지정합니다.

반사

Original and horizontally reflected checkerboard image

[cosd(2φ)sind(2φ)0sind(2φ)cosd(2φ)0001]

φ는 반사 축의 각도(단위: 도)를 지정합니다.

두 가지 일반적인 반사에는 세로 반사와 가로 반사가 있습니다. 세로 반사는 x축을 기준으로 한 반사이기 때문에 φ는 0이고 반사 행렬은 다음과 같이 단순화됩니다.

[1 0 0; 0 -1 0; 0 0 1].

가로 반사는 y축을 기준으로 한 반사이기 때문에 φ는 90이고 반사 행렬은 다음과 같이 단순화됩니다.

[-1 0 0; 0 1 0; 0 0 1]

회전

Original and rotated checkerboard image. The transformed image has been rotated approximately 30 degrees clockwise.

[cosd(θ)sind(θ)0sind(θ)cosd(θ)0001]

θ는 원점을 중심으로 한 회전 각도(단위: 도)를 지정합니다.

2차원 사영 변환

사영 변환을 수행하면 영상의 평면을 기울일 수 있습니다(틸트 효과). 평행선들이 소실점 방향으로 수렴할 수 있기 때문에 깊이가 있는 것처럼 보이게 됩니다.

이 변환은 3×3 행렬입니다. 아핀 변환과 달리 변환 행렬의 마지막 행에 대한 제약이 없습니다. 2차원 아핀 행렬과 사영 변환 행렬을 합성하여 일반적인 사영 변환을 나타내는 projtform2d 객체를 만듭니다.

2차원 사영 변환 변환 행렬
틸트

Original and projected checkerboard image. The transformed image appears tilted into a different plane.

[100010EF1]

E와 F는 소실점에 영향을 줍니다.

E와 F가 크면 소실점이 원점에 더 가까워져서 평행선들이 더 빨리 수렴하는 것처럼 보입니다.

3차원 아핀 변환

다음 표에는 3차원 아핀 변환과 이를 정의하는 데 사용되는 변환 행렬이 나열되어 있습니다. 3차원의 경우에는 영상을 회전 또는 전단하려는 방식에 따라 행렬이 달라진다는 사실에 유의하십시오. 3차원 아핀 변환의 경우 마지막 행은 [0 0 0 1]이어야 합니다.

  • 3차원 평행 이동 행렬을 조합하여 평행 이동 변환을 나타내는 transltform3d 객체를 만듭니다.

  • 3차원 평행 이동 행렬과 회전 행렬을 조합하여 비반사적 강체 변환을 나타내는 rigidtform3d 객체를 만듭니다.

  • 3차원 평행 이동 행렬, 회전 행렬, 스케일링 행렬을 조합하여 비반사적 유사 변환을 나타내는 simtform3d 객체를 만듭니다.

  • 3차원 변환 행렬을 조합하여 일반 아핀 변환을 나타내는 affinetform3d 객체를 만듭니다.

3차원 아핀 변환변환 행렬
평행 이동

x, y, z 방향에서 각각 크기 tx, ty, tz만큼 평행 이동:

[100tx010ty001tz0001]

스케일링

x, y, z 차원에서 각각 스케일링 인자 sx, sy, sz만큼 스케일링:

[sx0000sy0000sz00001]

전단

y-z 평면 내 전단:

[1000shxy100shxz0100001]

이 때

x'=xy'=y+shxyxz'=z+shxzx

x-z 평면 내 전단:

[1shyx0001000shyz100001]

이 때

x'=x+shyxyy'=yz'=z+shyzy

x-y 평면 내 전단:

[10shzx001shzy000100001]

이 때

x'=x+shzxzy'=y+shzyzz'=z

반사

y-z 평면에 걸친 반사, x 좌표 부정:

[1000010000100001]

x-z 평면에 걸친 반사, y 좌표 부정:

[1000010000100001]

x-y 평면에 걸친 반사, z 좌표 부정:

[1000010000100001]

회전

y-z 평면 내에서 x축을 기준으로 각도 θx만큼 회전(단위: 도):

[10000cosd(θx)sind(θx)00sind(θx)cosd(θx)00001]

x-z 평면 내에서 y축을 기준으로 각도 θy만큼 회전(단위: 도):

[cosd(θy)0sind(θy)00100sind(θy)0cosd(θy)00001]

x-y 평면 내에서 z축을 기준으로 각도 θz만큼 회전(단위: 도):

[cosd(θz)sind(θz)00sind(θz)cosd(θz)0000100001]

3차원 사영 및 N차원 변환

imwarp 함수는 3차원 사영 변환 또는 N차원 아핀 및 사영 변환을 지원하지 않습니다. 대신 maketform 함수를 사용하여 기하 변환 행렬에서 공간 변환 구조체를 만들 수 있습니다. 그런 다음 tformarray 함수를 사용하여 변환을 영상에 적용합니다. 자세한 내용은 N-Dimensional Spatial Transformations 항목을 참조하십시오.

변환 행렬의 차원은 (N+1)×(N+1)이어야 합니다. maketformtformarray 함수는 후위곱 행렬 규칙을 사용합니다. 후위곱 규칙의 기하 변환 행렬은 전위곱 규칙의 행렬의 전치입니다. 따라서 N차원 아핀 변환 행렬의 경우 마지막 열에는 [zeros(N,1); 1]이 포함되어야 하며 마지막 행의 값에는 제한이 없습니다.

참고 항목

| | | |

관련 예제

세부 정보