我试图用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”感到困惑。在
任何帮助都将不胜感激。在
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐