def clear_namespace(self, interpreter, project): if project is None: return sys.path = self.old_syspath for k in project.ns.keys() + ['world', 'data', 'project']: if k in interpreter.user_ns: del interpreter.user_ns[k] from openalea.core.world import World world = World() world.clear()
def add_objects_then_attributes(): world = World() world["obj1"] = 1 world["obj2"] = 2 obj1 = world["obj1"] obj2 = world["obj2"] obj1.set_attribute('a1', 1, 'IInt', constraints=c1) obj1.set_attribute('a2', True, 'IBool') obj2.set_attribute('b1', 2.34, 'IFloat', constraints=c2)
def add_objects_with_attributes_set(): """ Attributes are defined before adding object to world. Results is less signals sent by world """ world = World() world.clear() obj1 = WorldObject("obj1", 1) obj2 = WorldObject("obj2", 2) obj1.set_attribute('a1', 1, 'IInt', constraints=c1) obj1.set_attribute('a2', True, 'IBool') obj2.set_attribute('b1', 2.34, 'IFloat', constraints=c2) world["obj1"] = obj1 world["obj2"] = obj2
def update_namespace(self, interpreter): """ Definition: Update namespace """ if self._cproject: if self._cproject.path.exists(): os.chdir(self._cproject.path) sys.path.insert(0, str(self._cproject.path / 'lib')) else: os.chdir(self.tmpdir) sys.path.insert(0, str(self.tmpdir / 'lib')) interpreter.user_ns.update(self._cproject.ns) interpreter.user_ns['project'] = self._cproject interpreter.user_ns['data'] = self._cproject.path / 'data' from openalea.core.world import World world = World() world.update_namespace(interpreter)
def setUp(self): ev.events self.world = World() self.world.register_listener(ev)
def nuclei_active_region_segmentation(input_img, positions, omega_energies=dict(intensity=1.0, gradient=1.5, smoothness=10000.0), intensity_min=20000., iterations=10, display=False): """ 3D extension of the multiple region extension of the binary level set implementation """ segmentation_start_time = time() print "--> Active region segmentation (", len(positions), " regions )" from copy import deepcopy reference_img = deepcopy(input_img) size = np.array(reference_img.shape) voxelsize = np.array(reference_img.voxelsize) if display: from openalea.core.world import World world = World() if omega_energies.has_key('gradient'): from scipy.ndimage.filters import gaussian_gradient_magnitude start_time = time() print " --> Computing image gradient" gradient = gaussian_gradient_magnitude( np.array(reference_img, np.float64), sigma=0.5 / np.array(reference_img.voxelsize)) gradient_img = SpatialImage(np.array(gradient, np.uint16), voxelsize=reference_img.voxelsize) end_time = time() print " <-- Computing image gradient [", end_time - start_time, " s]" start_time = time() print " --> Creating seed image" print positions.keys() seed_img = seed_image_from_points(size, voxelsize, positions, point_radius=1.0) regions_img = np.copy(seed_img) end_time = time() print " <-- Creating seed image (", len(np.unique( regions_img)) - 1, " regions ) [", end_time - start_time, " s]" if display: world.add(seed_img, 'active_regions_seeds', colormap='glasbey', voxelsize=voxelsize, alphamap='constant', volume=False, cut_planes=True) raw_input() for iteration in xrange(iterations): start_time = time() print " --> Active region energy gradient descent : iteration", iteration, " (", len( np.unique(regions_img)) - 1, " regions )" previous_regions_img = np.copy(regions_img) regions_img = active_regions_energy_gradient_descent( regions_img, reference_img, omega_energies=omega_energies, intensity_min=intensity_min, gradient_img=gradient) change = ((regions_img - previous_regions_img) != 0.).sum() / float( (regions_img > 1.).sum()) end_time = time() print " --> Active region energy gradient descent : iteration", iteration, " (Evolution : ", int( 100 * change), " %) ", "[", end_time - start_time, " s]" if display: world.add(regions_img, 'active_regions', colormap='invert_grey', voxelsize=voxelsize, intensity_range=(1, 2)) segmented_img = SpatialImage(regions_img, voxelsize=reference_img.voxelsize) if display: world.add(segmented_img, 'active_regions', colormap='glasbey', voxelsize=voxelsize, alphamap='constant') raw_input() segmentation_end_time = time() print "<-- Active region segmentation (", len( np.unique(segmented_img) ) - 1, " regions ) [", segmentation_end_time - segmentation_start_time, " s]" return segmented_img
def initialize(self): self.world = World() self.world.register_listener(self)