def _import_vtk_ct_data(ct_data): """ Creates python array data from vtk file """ # read in text lines = _read_text(ct_data) lines = _remove_eol_r(lines) header = lines.split('LOOKUP')[0] # read in X data xlines = _refine_vtk_lines(header, 'X_COORDINATES \d+', 'double', 'Y_COORDINATES') X = [float(x) for x in xlines] # read in Y data ylines = _refine_vtk_lines(header, 'Y_COORDINATES \d+', 'double', 'Z_COORDINATES') Y = [float(y) for y in ylines] # read in Z data zlines = _refine_vtk_lines(header, 'Z_COORDINATES \d+', 'double', 'CELL_DATA') Z = [float(z) for z in zlines] # read in lookup data lookup_lines = _refine_vtk_lines(lines, 'LOOKUP_TABLE','default','') lookup = [int(l) for l in lookup_lines] # create vtk class vtk = vtk_data(X,Y,Z, lookup) # return data return vtk
def setUp(self): self.vtk_fle = os.path.join('py_bonemat_abaqus','tests','test.vtk') create_vtk_file(self.vtk_fle) x = [-1., 0., 1.] lookup = [0, 5, 10, 5, 10, 15, 10, 15, 20, 5, 10, 15, 25, 15, 20, 15, 20, 25, 10, 15, 20, 15, 20, 25, 20, 25, 30] self.vtk = vtk_data(x,x,x,lookup)
def _import_dicoms(ct_data): """ Imports dicom data and rearranges voxels to vtk lookup """ dicom_order, dicom_data = _import_dicom_ct_data(ct_data) lookup = _import_dicom_lookup(dicom_order, dicom_data, ct_data) X,Y,Z = _calc_dicom_xyz(dicom_data) vtk = vtk_data(X,Y,Z, lookup) return vtk
def create_vtk(x = [-1., 0., 1.], lookup = [0, 5, 10, 5, 10, 15, 10, 15, 20, 5, 10, 15, 25, 15, 20, 15, 20, 25, 10, 15, 20, 15, 20, 25, 20, 25, 30]): return vtk_data(x,x,x,lookup)