기하학적 변형으로 이미지의 형태를 바꿀 것임!

 

p' = T(p) 라고 표현할 수 있는데, p'가 결과 이미지, p가 원본 이미지이다.

T is global 이라고 하는 말은, 모든 픽셀에 동일하게 T가 적용됐다는 의미이다.

여기서 p와 p'의 값은 다르지만 담고 있는 내용은 같다.

[ x'        T [ x

  y' ]   =      y ]

 

이 warping의 종류는,

 - translation

 - rotation

 - aspect

 - scale

 - affine

 

어떻게 작용하냐면,

[ x'   =  [ a 0 ] [ x

  y' ]     [ 0 b ]   y ]

이렇게 되는데, 여기 곱해진 저 2*2 행렬이 scaling matrix라고 불림.

 

<크기 조절>

예를 들어, a, b 각각 2씩 넣어주면 2x, 2y가 되기에 각 좌표쪽으로 두 배씩 됨.

a = 2, b = 0.5로 하면, x좌표로 2배, y좌표로 1/2배가 된다.

 

<기울기-shearing>

여기선 scaling matrix 가 [ 1 a 

                                         b 1 ] 이 된다.

a, b = 0 이면 전과 같은 형태이다.

둘 중 하나만 0이면 한쪽으로 기울게 된다 (평행사변형)

 

<회전-rotation>

 

 

 

 

이런식으로 scaling matrix가 생성됨.

 

 

 

 

 

 

근데 만약, x, y뿐만 아닌 상수항이나 제곱항이 있다면 선형이 아니다.

 

<이동-translation>

Homogeneous coordinates

원래 x, y만 있던 벡터에서 x, y, 1로 바뀐다.

그리고 scaling matrix도 3*3으로 바뀐다. 

[ 1 0 tx                                       [ x

  0 1 ty                                         y

  0 0 1 ] 의 형태로 바뀌고, 이게  1] 의 벡터와 곱해지면 결과는 [x+tx, y+tx, 1].T의 형태로 바뀐다.

따라서 x축 방향으로 tx만큼 움직이고, y축 방향으로 tx만큼 움직이게 된다.

 

이런 변화들은 한 번에 곱해져서 수행될 수 있는데, 그 순서는

[ 변화 matrix ] = [ translation matrix ] * [ rotation matrix ] * [ scaling matrix ] * [ 원래 matrix ]  

행렬곱으로 따졌을 땐, 원래 matrix오 scaling 곱하고, rotation 곱하고 translation 곱하는 것임.

근데 여기서, 만약 이미지들에 특정 변환을 반복적으로 주고 싶다면,

저 translation, rotation, scaling을 모두 곱한 matrix를 따로 계산해놓고, 이미지들에 matrix를 계속 곱하면 편하게 계산 가능하다.

 

 

Image Warping

- Forward warping

- backward warping

이 부분은.. 나중에 하겠음.

'AI > 컴퓨터비전' 카테고리의 다른 글

Feature Matching  (1) 2024.11.25
Corner Detection  (1) 2024.11.15
compression  (0) 2024.06.16
restoration  (0) 2024.06.16
Segmentation  (1) 2024.06.16