VTKに基づく MRT-DTI リアルタイム ファイバートラッキング視覚化ツールを実装しようとしています。したがって、NIFTI 画像(.nii) に格納されているセルごとの DTIテンソル/行列を読み取る必要がありますが、これを行う方法がわかりません。
NIFTI ファイルから単一のスカラー値を取得することは問題ではありませんが、テンソル (3x3/4x4 行列) を取得する方法がわかりません。助けていただければ幸いです。
NIFTIImageReader はテンソル NIFTI イメージをマルチコンポーネント vtkImage として読み取ることになっているため、これを試しました。
vtkSmartPointer<vtkImageExtractComponents> extractTupel1 = vtkSmartPointer<vtkImageExtractComponents>::New();
extractTupel1->SetInputConnection(reader->GetOutputPort());
extractTupel1->SetComponents(0,1,2);
extractTupel1->Update();
vtkSmartPointer<vtkImageExtractComponents> extractTupel2 = vtkSmartPointer<vtkImageExtractComponents>::New();
extractTupel2->SetInputConnection(reader->GetOutputPort());
extractTupel2->SetComponents(3, 4, 5);
extractTupel2->Update();
vtkSmartPointer<vtkImageExtractComponents> extractTupel3 = vtkSmartPointer<vtkImageExtractComponents>::New();
extractTupel3->SetInputConnection(reader->GetOutputPort());
extractTupel3->SetComponents(6, 7, 8);
extractTupel3->Update();
extractTupel1->GetOutput()->GetPoint(pointId, tupel1);
extractTupel2->GetOutput()->GetPoint(pointId, tupel2);
extractTupel3->GetOutput()->GetPoint(pointId, tupel3);
しかし、うまくいきません。たぶん、GetPoint-Method は間違った選択でしょうか? 助けてください :)