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方向错切变换时:

图像简单变换_编程_02

当Y方向错切变换时:

图像简单变换_2d_03

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. ]])