2016-06-01 7 views
1

私は現在、人間の頭部のCT画像データを持っています。これには、YZ平面に256スライス、XZ平面に256スライス、XY平面に144スライスが含まれます。Structured_Points .vtkファイルを読むには

AndroidでOpenGL-ES 3.0を使用して、XY平面に1つのスライスのポイントをプロットする予定です。問題は、以下のASCIIデータを配列とバッファにロードする方法がわかりません。私はファイルの小さなスニペットを含めました。

# vtk DataFile Version 4.0 
vtk output 
ASCII 
DATASET STRUCTURED_POINTS 
DIMENSIONS 256 256 144 
SPACING 1 1 1 
ORIGIN 0 0 0 
POINT_DATA 9437184 
SCALARS ImageFile unsigned_short 
LOOKUP_TABLE default 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 

ルックアップテーブルに与えられたデータをどのように理解できますか?

EDIT:私はParaviewなどのプログラムでデータを表示する方法を理解しています。データが実際に私に伝えていることを理解したいので、カスタムパーサーを作成し、OpenGL-ESを使用して2Dスライスを自分で描くことができます。

答えて

1

vtkDataReaderを使用してVTKにデータをロードしようとしましたか?私が理解するように、構造化ポイントデータはvtkImageDataのサブクラスなので、Pythonでvtkを使用して次のような簡単なことができます。

import vtk 
from vtk.util import numpy_support 

path = 'path_to_file.vtk' 

reader = vtk.vtkDataReader() 
reader.SetFileName(path) 

img = vtk.vtkImageData() 
array = numpy_support.vtk_to_numpy(img) 

#z_plane of choice 
z = 10 
plane = array[:,:,10] 

それはC++ IちょうどGetScalarPointerまたはGetScalarComponentAsDouble機能を使用して、あなたがGetDimensions(からの寸法を知っている与えられた選択肢の平面をループ)とvtkImageDataを構築することにより、またはvtkImageResliceを使用して、中にいた場合に似たコードも動作します関数と適切な変換を渡す

+0

Paraviewなどのソフトウェアを使用してデータを表示する方法を理解しています。私の問題は、Javaでカスタムパーサーを作成したいということです。私は各数値を読み込み、配列に格納して、OpenGL-ESを使ってスライスを描きたいと思います。問題は、構造化されたポイントが私に語っていることを理解していないことです。 – brohan322

+0

http://www.cacr.caltech.edu/~slombey/asci/vtk/vtk_formats.simple.html –

関連する問題