我有一个不规则数据,x维度 - 384,y维度 - 256和z维度64.现在这些坐标存储在3个单独的二进制文件中,并且我有一个数据文件,其中包含这些点的数据值。我想知道,我怎样才能在vtk中轻松地显示这些数据。
直到现在我们正在使用AVS,它有fld文件,可以轻松读取这些数据。我不知道如何在vtk中做到这一点。非常感谢这方面的任何指示。
答案 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