如何得到变换矩阵

2024-10-01 07:46:39 发布

您现在位置:Python中文网/ 问答频道 /正文

看来我的问题的答案是显而易见的,但不幸的是我想不出来,请帮帮我!在

我尝试使用vtk库来获得python中的icp转换。在

我在这里运行这个代码: http://www.vtk.org/Wiki/VTK/Examples/Python/IterativeClosestPoints

然后呢

print icp.GetLandmarkTransform()

结果显示了转换矩阵等。在

。。。在

^{pr2}$

。。。在

如何在numpy数组中提取转换矩阵? 我只需要一个二维数据集的转换。有更简单的方法吗?在

提前谢谢你!在


Tags: 答案代码orghttpwwwwiki矩阵examples
3条回答

只是一个助手函数,我用它来做同样的事情。在

def vtkmatrix_to_numpy(matrix):
    """
    Copies the elements of a vtkMatrix4x4 into a numpy array.

    :param matrix: The matrix to be copied into an array.
    :type matrix: vtk.vtkMatrix4x4
    :rtype: numpy.ndarray
    """
    m = np.ones((4, 4))
    for i in range(4):
        for j in range(4):
            m[i, j] = matrix.GetElement(i, j)
    return m

通常,vtk矩阵可以提取为python列表:

temp = [0] * 16 #the matrix is 4x4
vtk_matrix.DeepCopy(temp, vtk_matrix)

在向一个朋友求助后,他给了我答案。如果有人需要的话,只需发布:

for i in range(3):
   for j in range(4):
       print icp.GetLandmarkTransform().GetMatrix().GetElement(i, j),
   print
print

相关问题 更多 >