Exemplo n.º 1
0
    def getBiggestObjects(self):

        """

        Vraceni nejvetsich objektu (nebo objektu, ktere obsahuji prioritni seedy).

        """

        if (self.biggestObjects == True or self.seeds != None) :

           self.imgFiltering = thresholding_functions.getPriorityObjects(self.imgFiltering, self.nObj, self.seeds)
Exemplo n.º 2
0
    def getBiggestObjects(self):
        """

        Vraceni nejvetsich objektu (nebo objektu, ktere obsahuji prioritni
        seedy).

        """

        logger.debug("biggest objects " + str(self.biggestObjects))
        logger.debug("self.seeds " + str(self.seeds))
        if self.biggestObjects == True or (self.seeds != None and self.useSeedsOfCompactObjects):

            self.imgFiltering = thresholding_functions.getPriorityObjects(self.imgFiltering, self.nObj, self.seeds)
Exemplo n.º 3
0
 def data_to_binar(self):
     ### Median filter
     filteredData = scipy.ndimage.filters.median_filter(self.data3d, size=2)
     
     ### Segmentation
     data3d_thr = segmentation.vesselSegmentation(
         filteredData, 
         segmentation=np.ones(self.data3d.shape, dtype='int8'),
         threshold=self.threshold, #-1,
         inputSigma=0, #0.15,
         dilationIterations=2,
         nObj=1,
         biggestObjects= False,
         interactivity= not self.nogui,
         binaryClosingIterations=2, #5,  # TODO !!! - vytvari na stranach oblasti ktere se pak nenasegmentuji
         binaryOpeningIterations=0 #1
         )
     
     ### NoGUI segmentation fix
     # Pri pouziti nogui modu segmentation.py nepouzije funkci getPriorityObjects jelikoz nema seedy => odlisne vysledky.
     # Proto musim rucne zjistit vhodny seed a zavolat funkci az ted.
     if self.nogui:
         # Get seed that is inside of big object
         seed_data = scipy.ndimage.morphology.binary_erosion(data3d_thr, iterations=2) # hledam pouze velke cevy
         seed = None
         for i in xrange(seed_data.shape[0]/3,seed_data.shape[0]-1): # shape/3 aby se zaclo hledat kolem prostredku
             for n in xrange(seed_data.shape[1]/3,seed_data.shape[1]-1): 
                 for j in xrange(seed_data.shape[2]/3,seed_data.shape[2]-1):
                     if seed_data[i][n][j]==1:
                         seed = (np.array([i]),np.array([n]),np.array([j]))
                         logger.debug('automatic seed -> '+str(seed)+' value -> '+str(seed_data[i][n][j]))
                         break
                 if seed is not None:
                     break
             if seed is not None:
                     break
         # Zaruci ze ve vystupu nebudou cevy ktere vedou od nikud nikam
         data3d_thr = thresholding_functions.getPriorityObjects(data3d_thr, nObj=1, seeds=seed) 
         
     ### Zalepeni der
     data3d_thr = scipy.ndimage.morphology.binary_fill_holes(data3d_thr)
     
     return data3d_thr