def matrix_transformation(matrix, contour_list, inverse=False):
"""
:param matrix: 转换矩阵 要求:4*4
:param contour_list: 轮廓点列表
:param inverse: 转换矩阵是否求逆矩阵
:return: 转换后的矩阵
"""
if isinstance(matrix, np.ndarray):
if matrix.shape != (4, 4):
print("转换矩阵不符合要求!")
return
try:
if inverse:
matrix = np.mat(matrix).I # 逆矩阵
new_contour = [i + [0, 1] for i in contour_list]
# 矩阵乘法运算
res = np.dot(matrix, np.array(new_contour).T)
res = res.T[:, :2] # 矩阵转置切片
print(res)
return res
except Exception as e:
print(e)
else:
print("转换矩阵不符合要求!")
矩阵转置和逆矩阵计算