기하학적 변형으로 이미지의 형태를 바꿀 것임!
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 (0) | 2024.11.15 |
compression (0) | 2024.06.16 |
restoration (0) | 2024.06.16 |
Segmentation (1) | 2024.06.16 |