定义旋转方法
@staticmethod
def Rotate(pcd, theta):
# 定义旋转矩阵(绕X轴旋转)
rotation_matrix = np.array([
[1, 0, 0],
[0,np.cos(theta), -np.sin(theta)],
[0,np.sin(theta), np.cos(theta)]
])
# 将点集转换为Nx3的矩阵
points = np.asarray(pcd.points)
# 执行矩阵乘法来旋转点集
rotated_points = np.dot(points, rotation_matrix.T)
pcbtemp = o3d.geometry.PointCloud()
pcbtemp.points = o3d.utility.Vector3dVector(rotated_points)
return pcbtemp
使用方法
RotatePCD = Rotate(GluePCD,25)
原图和旋转后的效果
下面是变换矩阵