コード例 #1
0
ファイル: examples.py プロジェクト: TomographyLab/DockerImage
def display_graph_example():
    """Display a simple (probabilistic) graphical model in the browser. """
    d = DisplayNode()
    graph = {
        'nodes': [{
            'name': 'A',
            'type': 0
        }, {
            'name': 'B',
            'type': 1
        }, {
            'name': 'C',
            'type': 0
        }, {
            'name': 'D',
            'type': 2
        }],
        'links': [{
            'source': 'A',
            'target': 'B',
            'type': 't1'
        }, {
            'source': 'A',
            'target': 'C',
            'type': 't1'
        }, {
            'source': 'C',
            'target': 'D',
            'type': 't2'
        }]
    }
    d.display_in_browser('graph', graph)
コード例 #2
0
    def display(self,
                axis=None,
                shrink=None,
                rotate=None,
                subsample_slices=None,
                scales=None,
                open_browser=None):
        if axis is None:
            axis = self._axis
        if shrink is None:
            shrink = self._shrink
        if rotate is None:
            rotate = self._rotate
        if subsample_slices is None:
            subsample_slices = self._subsample_slices
        if subsample_slices is None:
            subsample_slices = 1
        if scales is None:
            scales = self._scales
        if open_browser is None:
            open_browser = self._open_browser
        if open_browser is None:
            open_browser = False
        D = DisplayNode()
        images = []
        n = 0

        N_slices = 0
        for j in range(len(self.volumes)):
            N_slices += self.get_shape(j)[axis]
        self._progress_bar = ProgressBar(height='6px',
                                         width='100%%',
                                         background_color=C.LIGHT_GRAY,
                                         foreground_color=C.GRAY)

        for j in range(len(self.volumes)):
            if scales is None:
                scale = 255 / (self.get_data(j).max() + 1e-9)
            else:
                scale = scales[j] * 255 / (self.get_data(j).max() + 1e-9)
            images_inner = []
            for i in range(0, self.get_shape(j)[axis], subsample_slices):
                im = self.export_image(j,
                                       i,
                                       axis,
                                       normalise=True,
                                       scale=scale,
                                       shrink=shrink,
                                       rotate=rotate)
                images_inner.append(im)
                n += 1
                self._progress_bar.set_percentage(n * 100.0 / N_slices *
                                                  subsample_slices)
            images.append(images_inner)
        return D.display('tipix', images, open_browser)
コード例 #3
0
ファイル: examples.py プロジェクト: TomographyLab/TomoLab
def display_image_example(): 
    """Display an image in the browser using Openseadragon.js """
    N        = 512
    N_tiles  = 6
    max_iter = 6
    d = DisplayNode() 
    print("Wait, generating awesome images .. ")
    image = Image.new("RGB",(N*N_tiles,N))
    for i in range(N_tiles): 
        print("%d / %d "%(i+1,N_tiles))
        tile = polygon_fractal(n=i+3,imgx=N,imgy=N,maxIt=max_iter)
        image.paste(tile,(i*N,0))
    d.display_in_browser('image',image)
コード例 #4
0
ファイル: examples.py プロジェクト: spedemon/DisplayNode
def display_image_example(): 
    """Display an image in the browser using Openseadragon.js """
    N        = 512
    N_tiles  = 6
    max_iter = 6
    d = DisplayNode() 
    print "Wait, generating awesome images .. "
    image = Image.new("RGB",(N*N_tiles,N))
    for i in range(N_tiles): 
        print "%d / %d "%(i+1,N_tiles)
        tile = polygon_fractal(n=i+3,imgx=N,imgy=N,maxIt=max_iter)
        image.paste(tile,(i*N,0))
    d.display_in_browser('image',image)
コード例 #5
0
    def display(self, axis=None, max_size=256, open_browser=None):
        if axis is None:
            axis = self._axis
        if open_browser is None:
            open_browser = self._open_browser
        if open_browser is None:
            open_browser = False
        D = DisplayNode()

        self._progress_bar = ProgressBar(height='6px',
                                         width='100%%',
                                         background_color=C.LIGHT_GRAY,
                                         foreground_color=C.GRAY)

        volume = self.volumes[0]  #FIXME: optionally use other grid
        # make grid of regularly-spaced points
        box_min = volume.get_world_grid_min()
        box_max = volume.get_world_grid_max()
        span = box_max - box_min
        max_span = span.max()
        n_points = numpy.uint32(span / max_span * max_size)
        grid = volume.get_world_grid(n_points)
        n = 0
        images = []
        for index in range(len(self.volumes)):
            volume = self.volumes[index]
            resampled = volume.compute_resample_on_grid(grid).data
            self._resampled = resampled
            sequence = []
            for slice_index in range(n_points[axis]):
                if axis == 0:
                    a = numpy.float32(resampled[slice_index, :, :].reshape(
                        (resampled.shape[1], resampled.shape[2])))
                elif axis == 1:
                    a = numpy.float32(resampled[:, slice_index, :].reshape(
                        (resampled.shape[0], resampled.shape[2])))
                else:
                    a = numpy.float32(resampled[:, :, slice_index].reshape(
                        (resampled.shape[0], resampled.shape[1])))
                lookup_table = volume.get_lookup_table()
                im = self.__array_to_im(a, lookup_table)
                sequence.append(im.rotate(90))  #FIXME: make optional
                n += 1
                self._progress_bar.set_percentage(
                    n * 100.0 / (len(self.volumes) * max_size))
            images.append(sequence)
        if len(images) == 1:
            return D.display('tipix', images[0], open_browser)
        else:
            return D.display('tipix', images, open_browser)
コード例 #6
0
ファイル: Visualization.py プロジェクト: lynch829/occiput
 def display(self,scale=None,open_browser=False): 
     data = self.data
     d = DisplayNode()
     images = []
     progress_bar = ProgressBar(height='6px', width='100%%', background_color=C.LIGHT_GRAY, foreground_color=C.GRAY) 
     if scale is not None:
         scale = scale*255.0/(data.max()+1e-12)
     else: 
         scale = 255.0/(data.max()+1e-12) 
     N_projections = self.data.shape[2]
     N_x = self.data.shape[0]
     N_y = self.data.shape[1]
     print "SPECT Projection   [N_projections: %d   N_x: %d   N_y: %d]"%(N_projections,N_x,N_y)
     for i in range( N_projections ): 
             images.append( self.to_image(data,i,scale=scale,absolute_scale=True) ) 
             progress_bar.set_percentage(i*100.0/N_projections)                         
     progress_bar.set_percentage(100.0)
     return d.display('tipix', images, open_browser)
コード例 #7
0
ファイル: SPECT.py プロジェクト: HeConnor/Occiput
 def display(self,scale=None,open_browser=False): 
     data = self.data
     d = DisplayNode()
     images = []
     progress_bar = ProgressBar(height='6px', width='100%%', background_color=LIGHT_GRAY, foreground_color=GRAY) 
     if scale is not None:
         scale = scale * 255.0 / (data.max() + 1e-12)
     else: 
         scale = 255.0 / (data.max() + 1e-12)
     N_projections = self.data.shape[2]
     N_x = self.data.shape[0]
     N_y = self.data.shape[1]
     print("SPECT Projection   [N_projections: %d   N_x: %d   N_y: %d]" % (N_projections, N_x, N_y))
     for i in range(N_projections):
         images.append(self.to_image(data, i, scale=scale, absolute_scale=True))
         progress_bar.set_percentage(i * 100.0 / N_projections)
     progress_bar.set_percentage(100.0)
     return d.display('tipix', images, open_browser)
コード例 #8
0
ファイル: Visualization.py プロジェクト: lynch829/occiput
 def display(self,axis=None, max_size=256, open_browser=None):
     if axis is None:
         axis = self._axis
     if open_browser  is None: 
         open_browser = self._open_browser
     if open_browser  is None: 
         open_browser = False 
     D = DisplayNode() 
     
     self._progress_bar = ProgressBar(height='6px', width='100%%', background_color=C.LIGHT_GRAY, foreground_color=C.GRAY)
     
     volume = self.volumes[0]    #FIXME: optionally use other grid
     # make grid of regularly-spaced points 
     box_min = volume.get_world_grid_min() 
     box_max = volume.get_world_grid_max() 
     span = box_max-box_min 
     max_span = span.max() 
     n_points = numpy.uint32(span / max_span * max_size) 
     grid = volume.get_world_grid(n_points) 
     n=0
     images = [] 
     for index in range(len(self.volumes)): 
             volume = self.volumes[index] 
             resampled = volume.compute_resample_on_grid(grid).data
             self._resampled = resampled
             sequence = []
             for slice_index in range(n_points[axis]): 
                 if axis == 0:
                     a = numpy.float32(resampled[slice_index,:,:].reshape((resampled.shape[1],resampled.shape[2]))) 
                 elif axis == 1: 
                     a = numpy.float32(resampled[:,slice_index,:].reshape((resampled.shape[0],resampled.shape[2])))
                 else: 
                     a = numpy.float32(resampled[:,:,slice_index].reshape((resampled.shape[0],resampled.shape[1])))
                 lookup_table = volume.get_lookup_table()
                 im = self.__array_to_im( a, lookup_table )
                 sequence.append(im.rotate(90))  #FIXME: make optional 
                 n+=1
                 self._progress_bar.set_percentage(n*100.0/(len(self.volumes)*max_size)) 
             images.append(sequence) 
     if len(images)==1: 
         return D.display('tipix', images[0], open_browser) 
     else:  
         return D.display('tipix', images, open_browser)   
コード例 #9
0
ファイル: Visualization.py プロジェクト: lynch829/occiput
 def display(self,axis=None,shrink=None,rotate=None,subsample_slices=None,scales=None,open_browser=None):
     if axis is None:
         axis = self._axis
     if shrink  is None:
         shrink = self._shrink
     if rotate  is None: 
         rotate = self._rotate
     if  subsample_slices  is None: 
         subsample_slices = self._subsample_slices
     if subsample_slices is None: 
         subsample_slices=1
     if scales  is None: 
         scales = self._scales 
     if open_browser  is None: 
         open_browser = self._open_browser
     if open_browser  is None: 
         open_browser = False 
     D = DisplayNode()
     images = []
     n=0
     
     N_slices = 0
     for j in range(len(self.volumes)): 
         N_slices += self.get_shape(j)[axis] 
     self._progress_bar = ProgressBar(height='6px', width='100%%', background_color=C.LIGHT_GRAY, foreground_color=C.GRAY)
     
     for j in range(len(self.volumes)): 
         if scales  is None: 
             scale = 255/(self.get_data(j).max()+1e-9)
         else: 
             scale = scales[j]*255/(self.get_data(j).max()+1e-9)
         images_inner = []
         for i in range(0,self.get_shape(j)[axis],subsample_slices): 
             im = self.export_image(j,i,axis,normalise=True,scale=scale,shrink=shrink,rotate=rotate)
             images_inner.append(im) 
             n+=1
             self._progress_bar.set_percentage(n*100.0/N_slices*subsample_slices) 
         images.append(images_inner) 
     return D.display('tipix', images, open_browser)   
コード例 #10
0
ファイル: examples.py プロジェクト: TomographyLab/TomoLab
 def _repr_html_(self): 
     d = DisplayNode()
     d.display('graph', self.make_graph_of_self() ) 
     return d._repr_html_() 
コード例 #11
0
ファイル: examples.py プロジェクト: TomographyLab/TomoLab
def display_geometry_example(): 
    "Under development: webGL display based on three.js " 
    d = DisplayNode() 
    d.display_in_browser("three_cubes",{}) 
コード例 #12
0
ファイル: Models.py プロジェクト: spedemon/iLang
 def _repr_html_(self): 
     display_node = DisplayNode()
     return display_node.display('graph',self.export_dictionary())._repr_html_()
コード例 #13
0
ファイル: Models.py プロジェクト: spedemon/iLang
 def display_in_browser(self):
     """Displays the graph in a web browser. """
     display_node = DisplayNode()
     display_node.display_in_browser('graph',self.export_dictionary()) 
コード例 #14
0
ファイル: examples.py プロジェクト: spedemon/DisplayNode
 def _repr_html_(self): 
     d = DisplayNode()
     d.display('graph', self.make_graph_of_self() ) 
     return d._repr_html_() 
コード例 #15
0
ファイル: examples.py プロジェクト: spedemon/DisplayNode
def display_geometry_example(): 
    "Under development: webGL display based on three.js " 
    d = DisplayNode() 
    d.display_in_browser("three_cubes",{}) 
コード例 #16
0
ファイル: examples.py プロジェクト: spedemon/DisplayNode
def display_graph_example(): 
    """Display a simple (probabilistic) graphical model in the browser. """
    d = DisplayNode() 
    graph = {'nodes':[{'name': 'A', 'type': 0}, {'name': 'B', 'type': 1}, {'name': 'C', 'type': 0}, {'name': 'D', 'type': 2}], 'links': [{'source': 'A', 'target': 'B', 'type': 't1'},
  {'source': 'A', 'target': 'C', 'type': 't1'},{'source': 'C', 'target': 'D', 'type': 't2'} ] }
    d.display_in_browser('graph',graph)