【发布时间】:2015-08-21 10:08:07
【问题描述】:
我正在尝试实现一个基于VTK的MRT-DTI实时光纤跟踪可视化工具。 因此,我们需要读取存储在NIFTI图像 (.nii)中的张量/矩阵每个单元和我真的不知道该怎么做。
从 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 方法是错误的选择? 请帮忙:)
【问题讨论】: