1.计算仿射矩阵
1)方程法:
cv2.getAffineTransform(src, dst), src和dst分别代表原坐标和变换后的坐标,且均为3行2列的二维ndarray。
1 import cv2 2 import numpy as np 3 src = np.array([[0,0],[200,0],[0,200]],np.float32) 4 dst = np.array([[0,0],[100, 0], [0,100]], np.float32) 5 A = cv2.getAffineTransform(src, dst) 6 print(A) 7 #array([[0.5, 0. , 0. ], 8 # [0. , 0.5, 0. ]])
2) 矩阵法:
cv2.getRotationMatrix2D(center, angle, scale),center为变换中心点的坐标,scale是等比例缩放的系数,angle是逆时针旋转的角度(angle以角度为单位,非弧度)。
1 import numpy as np 2 import cv2 3 A = cv2.getRotationMatrix2D((40, 50), 30, 0.5) 4 print(A.dtype) 5 #dtype('float64') 6 print(A) 7 #[[ 0.4330127 0.25 10.17949192] 8 # [-0.25 0.4330127 38.34936491]]