Opengl es 如何读取结构化的_Points.vtk文件

Opengl es 如何读取结构化的_Points.vtk文件,opengl-es,vtk,Opengl Es,Vtk,我目前有一个人头部的CT图像数据。它在YZ平面中包含256个切片,在XZ平面中包含256个切片,在XY平面中包含144个切片 我计划在Android上使用OpenGL ES 3.0在XY平面上绘制一个切片的点。问题是,我不确定如何将下面的ASCII数据加载到数组和缓冲区中。我已经包括了这个文件的一小部分 # vtk DataFile Version 4.0 vtk output ASCII DATASET STRUCTURED_POINTS DIMENSIONS 256 256 144 SPAC

我目前有一个人头部的CT图像数据。它在YZ平面中包含256个切片,在XZ平面中包含256个切片,在XY平面中包含144个切片

我计划在Android上使用OpenGL ES 3.0在XY平面上绘制一个切片的点。问题是,我不确定如何将下面的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 
如何理解查找表中给出的数据


编辑:我了解如何在Paraview等程序中查看数据。我想了解数据实际上告诉了我什么,这样我就可以创建一个自定义解析器并使用OpenGL ES自己绘制2D切片

您是否尝试过使用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++中,我只使用GETSCALLASTROUNT或GETSCALARCITIONS双函数,并在选择平面上循环,因为您知道GETSIGNSY()的维度。构建vtkImageData或使用vtKimageSlice函数并传递适当的转换

我了解如何使用Paraview等软件查看数据。我的问题是我想用Java创建一个自定义解析器。我想读取每个数字并将其存储在数组中,然后使用OpenGL ES绘制切片。问题是,我不明白结构化点告诉我什么。