2

x 次元 - 384、y 次元 - 256、z 次元 64 の不規則なデータがあります。現在、これらの座標は 3 つの個別のバイナリ ファイルに格納されており、これらのポイントのデータ値を持つデータ ファイルがあります。そのようなデータをvtkで簡単に視覚化するにはどうすればよいか知りたいです。

これまでは、このようなデータを簡単に読み取ることができる fld ファイルを持つ AVS を使用していました。vtkでそれを行う方法がわかりません。この方向の指針をいただければ幸いです。

4

3 に答える 3

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; 
          } 
     }              

}

于 2012-05-17T12:32:02.103 に答える
1

たぶん、ファイルをVTKネイティブ形式に変換する短いプログラムを書くことができます。それらは操作が簡単で、ASCIIとバイナリのフレーバーがあります。それらはこのドキュメントで説明されています:www.vtk.org/VTK/img/file-formats.pdf

これも役立つかもしれません:http : //www.rug.nl/cit/hpcv/visualisation/VTK/avs2vtk/man.html-ページを掘り下げると、AVSファイルをVTK形式に変換するスクリプトがあります。それは良い出発点かもしれません。

これがお役に立てば幸い、カルロス-

于 2009-12-12T21:59:31.080 に答える