可视化vtk中的不规则数据

时间:2009-11-09 18:51:24

标签: vtk

我有一个不规则数据,x维度 - 384,y维度 - 256和z维度64.现在这些坐标存储在3个单独的二进制文件中,并且我有一个数据文件,其中包含这些点的数据值。我想知道,我怎样才能在vtk中轻松地显示这些数据。

直到现在我们正在使用AVS,它有fld文件,可以轻松读取这些数据。我不知道如何在vtk中做到这一点。非常感谢这方面的任何指示。

3 个答案:

答案 0 :(得分:2)

我最好的答案是编写一个小程序,读取文件,然后填充vtkImageData对象,然后使用vtkMetaImageWriter或其他东西保存它?

vtkSmartPointer<vtkImageData> ImageData = vtkSmartPointer<vtkImageData>::New(); 
ImageData->SetDimensions(384,254,64); 
ImageData->SetOrigin(0.0,0.0,0.0); 
ImageData->SetSpacing(1.0,1.0,1.0); 
ImageData->SetScalarTypeToDouble();
ImageData->AllocateScalars();   
for(int i=0; i<z_dim-1; i++){
   for(int j=0;j<y_dim-1;j++){                             
     for(int k=0;k<x_dim-1;j++){
          double pix= pixel from data file
          double* pixel = static_cast<double*>(ImageData->GetScalarPointer(k,j,i)); 
          pixel[0] = pix; 
          } 
     }              

}

答案 1 :(得分:1)

也许您可以编写一个简短的程序将文件转换为VTK原生格式。它们很容易使用,并且有ASCII和二进制风格。它们在本文档中描述:www.vtk.org/VTK/img/file-formats.pdf

您可能会发现这也很有用:http://www.rug.nl/cit/hpcv/visualisation/VTK/avs2vtk/man.html - 如果您浏览页面,那里有将AVS文件转换为VTK格式的脚本,这可能是一个很好的起点。

希望这有帮助, 卡洛斯 -

答案 2 :(得分:0)

您可以使用paraview打开所有文件,合并点并进行可视化。 here is a example for load files

你可以像这个例子一样保存vtk文件 here is a example for save the points