def downsample_vtk(vtk_file, sample_rate): """Sample rate: number between 0 and 1.""" from mindboggle.mio.vtks import read_vtk, write_vtk from mindboggle.guts.mesh import decimate_file if (sample_rate < 0 or sample_rate > 1): raise ValueError('0 <= sample_rate <= 1; you input %f' % sample_rate) # Downsample decimate_file(vtk_file, reduction=1 - sample_rate, output_vtk=vtk_file, save_vtk=True, smooth_steps=0) # Hack to re-save in vtk_data = read_vtk(vtk_file) write_vtk(vtk_file, *vtk_data[:-2])
if not os.path.exists(surf_vtk): freesurfer_surface_to_vtk(surf_file, surf_vtk) if not os.path.exists(label_vtk): freesurfer_annot_to_vtk(label_file, surf_vtk, label_vtk) # Break into ROIs if True: # downsample_vtk(label_vtk, sample_rate=sample_rate) explode_scalars(label_vtk, output_stem='lh_roi_') roi_dict = dict([(i, roi_vtk) for i, roi_vtk in enumerate(glob.glob('lh_roi_*.vtk'))]) # Downsample if False: print('Downsampling vtks') for roi_vtk in roi_dict.values(): decimate_file(roi_vtk, reduction=0.5, output_vtk=roi_vtk, save_vtk=True, smooth_steps=100) for roi_vtk in roi_dict.values(): explode_scalars(roi_vtk, output_stem='lh_roi_') # Create manifest file with open('lh.json', 'wb') as fp: simplejson.dump(dict(filename=roi_dict), fp) # Create index.html with open('bug.html', 'wb') as fp: fp.write(""" <!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - loaders - vtk loader</title> <meta charset="utf-8">