주로 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축 방향으로도 밀리는 모습을 관찰할 수 있다.