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方向的
错切变换。相应的数学矩阵分别例如以下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SMmVjN2QWZlNTY2cTZ2AjMyEjY0IjZhNjM5kTYlNmN38CXwEzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL5M3Lc9CX6MHc0RHaiojIsJye.png)
依据上述矩阵如果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)
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)