import cv2
import numpy as np
import PIL
def get_3rd_point(a, b):
direct = a - b
return b + np.array([-direct[1], direct[0]], dtype=np.float32)
src=np.array([[7,5],[7,2],[4,2]])#width*height
dst=np.array([[3,2],[3,1],[2,1]])#width*height
#dst=np.array([[6,3],[6,0],[3,0]])#width*height
trans = cv2.getAffineTransform(np.float32(src), np.float32(dst))
print(trans)
input=np.zeros((9,9),dtype=np.float32)
input[2,4:8]=100.0
input[3:6,4]=100.0
print(input)
output = cv2.warpAffine(
input,
trans,
(int(5), int(6)),#width*height
flags=cv2.INTER_LINEAR)
print(output)
[[ 3.33333333e-01 -0.00000000e+00 6.66666667e-01]
[-7.93016446e-18 3.33333333e-01 3.33333333e-01]]
[[ 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 100. 100. 100. 100. 0.]
[ 0. 0. 0. 0. 100. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 100. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 100. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
[[ 0. 0. 0. 0. 0.]
[ 0. 0. 100. 100. 0.]
[ 0. 0. 100. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]]