1. 平移变换矩阵
T = np.eye(3)
T[0, 2] = random.uniform(-0.1, 0.1) * 100
T[1, 2] = random.uniform(-0.1, 0.1) * 100
T
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
T
array([[1. , 0. , 5.1155803 ],
[0. , 1. , 9.46472401],
[0. , 0. , 1. ]])
2.错切矩阵
图像错切变换在图像几何形变方面很实用,常见的错切变换分为X方向与Y方向的
错切变换。相应的数学矩阵分别例如以下:
依据上述矩阵如果P(x1, y1)为错切变换之前的像素点。则错切变换以后相应的像素
P’(x2, y2)当X方向错切变换时:
当Y方向错切变换时:
S = np.eye(3)
S[0, 1] = math.tan(random.uniform(-10, 10) * math.pi)
S[1, 0] = math.tan(random.uniform(-10, 10) * math.pi)
3.旋转尺度变换
R = np.eye(3)
a = random.uniform(-10, 10)
s = random.uniform(1 - 0.1, 1 + 0.1)
R[:2] = cv2.getRotationMatrix2D(angle=a, center=(100 / 2, 100R / 2), scale=s)
R
array([[ 1.0789955 , -0.09748733, 0.9245915 ],
[ 0.09748733, 1.0789955 , -8.8241415 ],
[ 0. , 0. , 1. ]])