
주로 projective, affine을 사용한다.

cv2.warpAffine(src, M, dsize, dst=None, flags=None, borderMode=None, borderValue=None) -> dst
src = cv2.imread('tekapo.bmp')
aff = np.array([1, 0, 200],
[0, 1, 100]], dtype=np.float32)
dst = cv2.warpAffine(src, aff, (0, 0))

aff = np.array([1, 0, 100],
[0, 1, 200]], dtype=np.float32)

영상의 이동 변위가 변화하는 모습을 확인할 수 있다.

src = cv2.imread('tekapo.bmp')
aff = np.array([[1, 0.5, 0],
[0, 1, 0]], dtype=np.float32)
h, w = src.shape[:2]
dst = cv2.warpAffine(src, aff, (w + int(h*0.5), h))

...
aff = np.array([[1, 0.1, 0],
[0, 1, 0]], dtype=np.float32)
...
dst = cv2.warpAffine(src, aff, (w + int(h*0.1), h))

이를 응용하면 밀리는 정도 뿐만 아니라, y축 방향으로도 밀리는 모습을 관찰할 수 있다.