animation/fourcell/notes/affine_poc.py

29 lines
652 B
Python

import cv2
import numpy as np
#outer template
outer = cv2.imread("graph.jpeg")
#inner image
inner = cv2.imread("emoji.jpeg")
rows, cols, ch = outer.shape
ir, ic, ich = inner.shape
print(f'{cols}x{rows}')
print(f'{ic}x{ir}')
# destination ponts on outer image
pts1 = np.float32([[15, 15], [200, 30], [50, 140]])
# corresponding points on inner image
pts2 = np.float32([[0, 0], [ic, 0], [0, ir]])
# transform inner to points on outer
M = cv2.getAffineTransform(pts2, pts1)
# apply
dst = cv2.warpAffine(inner, M, (cols, rows), borderMode=cv2.BORDER_TRANSPARENT)
final = outer.copy()
final[0:rows, 0:cols] = dst
cv2.imwrite("affine_poc.png", final)