Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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
Exemplo n.º 7
0
 def initialize(self):
     self.world = World()
     self.world.register_listener(self)