在python中使用vtkpcanalysisfilter进行统计形状建模

2024-07-03 06:02:26 发布

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

我试图用vtk建立一个统计形状模型。Procrustes对齐和主成分分析函数已经在vtk中可用,并且有python示例。但是,我很难从vtkPCAAnalysisFilter()访问结果。在

具体地说,我试着以我在vtk.org网站网站。我已经产生了3个文本文件,其中包括一个形状轮廓上一些点的坐标。然后,我将这些点转换为vtkPolyData,然后执行ProcrustesAlignment,然后执行PCA:

#ProcrustesAlignment
group = vtk.vtkMultiBlockDataGroupFilter()
group.AddInputData(poly_1)
group.AddInputData(poly_2)
group.AddInputData(poly_3)
procrustes = vtk.vtkProcrustesAlignmentFilter()
procrustes.SetInputConnection(group.GetOutputPort())
procrustes.GetLandmarkTransform().SetModeToSimilarity()
procrustes.Update()

#PCA filter
pca = vtk.vtkPCAAnalysisFilter()
pca.SetInputConnection(procrustes.GetOutputPort())
pca.Update()

#displaying the most important eigenvalues 
EVNo = pca.GetModesRequiredFor(0.98)
for j in range (0,EVNo):
    print pca.GetEvals().GetValue(j)

但是,我无法访问PCA产生的特征向量。另外,如何在文件中写入平均模型节点。最后,我如何得到一个新的“测试”形状所需的系数(我想我应该使用pca.GetShapeParameters(shapea,params,2),但是如何将结果写到某个地方呢。在本例中,我使用了以下部分来实现PCA结果的可视化:

^{pr2}$

但是,我仍然对定义的“params”和“shapea”感到困惑。在

任何帮助都将不胜感激。在

谢谢


Tags: 模型网站groupupdate形状vtkpolypca