def test_horizon_events(): # using here MNI template affine 2009a affine = np.array([[1., 0., 0., -98.], [0., 1., 0., -134.], [0., 0., 1., -72.], [0., 0., 0., 1.]]) data = 255 * np.random.rand(197, 233, 189) vox_size = (1., 1., 1.) images = [(data, affine)] # images = None from dipy.segment.tests.test_bundles import setup_module setup_module() from dipy.segment.tests.test_bundles import f1 streamlines = f1.copy() streamlines._data += np.array([-98., -134., -72.]) header = create_nifti_header(affine, data.shape, vox_size) sft = StatefulTractogram(streamlines, header, Space.RASMM) tractograms = [sft] # select all centroids and expand and click everything else # do not press the key shortcuts as vtk generates warning that # blocks recording fname = os.path.join(DATA_DIR, 'record_horizon.log.gz') horizon(tractograms=tractograms, images=images, pams=None, cluster=True, cluster_thr=5.0, random_colors=False, length_gt=0, length_lt=np.inf, clusters_gt=0, clusters_lt=np.inf, world_coords=True, interactive=True, out_png='tmp.png', recorded_events=fname)
def test_horizon_events2(): affine = np.diag([2., 1, 1, 1]).astype('f8') data = 255 * np.random.rand(150, 150, 150) images = [(data, affine)] from dipy.segment.tests.test_bundles import f1 streamlines = f1.copy() tractograms = [streamlines] fname = os.path.join(DATA_DIR, 'record_02.log.gz') horizon(tractograms, images=images, cluster=False, cluster_thr=5, random_colors=False, length_lt=np.inf, length_gt=0, clusters_lt=np.inf, clusters_gt=0, world_coords=True, interactive=True, recorded_events=fname)
def initialize(self): print(sys.version) global renderer, renderWindow, renderWindowInteractor #, cone, mapper, actor # Bring used components self.registerVtkWebProtocol(protocols.vtkWebMouseHandler()) self.registerVtkWebProtocol(protocols.vtkWebViewPort()) self.registerVtkWebProtocol(protocols.vtkWebViewPortImageDelivery()) # self.registerVtkWebProtocol(protocols.vtkWebPublishImageDelivery(decode=False)) self.registerVtkWebProtocol(protocols.vtkWebViewPortGeometryDelivery()) # Update authentication key to use self.updateSecret(_WebCone.authKey) # tell the C++ web app to use no encoding. vtkWebPublishImageDelivery must be set to decode=False to match. # self.getApplication().SetImageEncoding(0) # Create default pipeline (Only once for all the session) if not _WebCone.view: TEST_HORIZON = False if not TEST_HORIZON: showm = window.ShowManager() showm.initialize() slider_demo = self.build_slider_demo() brain_demo = self.build_brain_demo(showm) bundle_demo = self.build_bundle_demo() surface_demo = self.build_surface_demo(showm) examples = [slider_demo, brain_demo] examples_names = [name for name, act in examples] listbox = ui.ListBox2D(values=examples_names, position=(10, 300), size=(300, 80), multiselection=False) def hide_all_examples(): for _, l_act in examples: for element in l_act: if hasattr(element, 'add_to_scene'): element.set_visibility(False) else: element.SetVisibility(False) def display_element(): hide_all_examples() example = examples[examples_names.index( listbox.selected[0])] for element in example[1]: if hasattr(element, 'add_to_scene'): element.set_visibility(True) else: element.SetVisibility(True) listbox.on_change = display_element listbox.panel.color = (1.0, 1.0, 1.0) listbox.panel.opacity = 0.3 hide_all_examples() showm.scene.add(listbox) for _, l_act in examples: for element in l_act: showm.scene.add(element) # VTK specific code renderer = showm.scene renderWindow = showm.window renderWindowInteractor = showm.iren else: affine = np.diag([2., 1, 1, 1]).astype('f8') data = 255 * np.random.rand(150, 150, 150) images = [(data, affine)] from dipy.segment.tests.test_bundles import f1 streamlines = f1.copy() tractograms = [streamlines] Horizon(tractograms, images=images, cluster=True, cluster_thr=5, random_colors=False, length_lt=np.inf, length_gt=0, clusters_lt=np.inf, clusters_gt=0, world_coords=True) def calc_suare(numbers, showm): print("Calculate square numbers") for n in numbers: time.sleep(1) print("square:", n * n) showm.scene.GetActiveCamera().Azimuth(10) # showm.render() # view = self.getApplication().GetObjectIdMap().GetActiveObject("VIEW") # arr = np.random.rand(100) # t1 = threading.Thread(target=calc_suare, args=(arr, showm)) # t1.start() print("Auth-key {}".format(_WebCone.authKey)) print('Initialization --- OK') print('Starting FURY SERVER') # VTK Web application specific _WebCone.view = renderWindow self.getApplication().GetObjectIdMap().SetActiveObject( "VIEW", renderWindow)