Esempio n. 1
0
 def select(self, valid, id='', no_empty_label=True):
     """
     Remove the rois for which valid==0 and update the hierarchy accordingly
     Note that auto=True automatically
     """
     SubDomains.select(self, valid, id, True, no_empty_label )
     if np.sum(valid)==0:
         self.parents = np.array([])
     else:
         self.parents = Forest(len(self.parents), self.parents).subforest(
             valid.astype(np.bool)).parents.astype(np.int)
Esempio n. 2
0
    def representative_feature(self, fid, method='mean'):
        """
        Compute an ROI-level feature given the discrete features
        
        Parameters
        ----------
        fid(string) the discrete feature under consideration
        method='average' the assessment method
        
        Returns
        -------
        the computed roi-feature is returned
        """
        if method not in['min','max','mean','cumulated_mean', 'median',
                         'weighted mean']:
            raise  ValueError, 'unknown method'
        if method=='cumulated_mean':
            data = self.features[fid]
            d0 = data[0]
            if np.size(d0) == np.shape(d0)[0]:
                np.reshape(d0, (np.size(d0),1))
            fdim = d0.shape[1]
            ldata = np.zeros((self.k, fdim))
            for k in range(self.k):
                dk = self.make_forest().get_descendents(k)
                card = np.sum(self.get_size()[dk])
                for ch in dk:
                    ldata[k] += np.sum(data[ch],0)  
                ldata[k]/=card
            self.set_roi_feature(fid, ldata)
        else:
            ldata = SubDomains.representative_feature(self, fid, method)

        return ldata
Esempio n. 3
0
 def copy(self, id=''):
     """
     returns a copy of self. self.domain is not copied.
     """
     cp = make_hroi_from_subdomain(SubDomains.copy(self, id),
                                   self.parents.copy())
     return cp
Esempio n. 4
0
 def __init__(self, domain, label, parents, id='' ):
     """
     Building the HierarchicalROI
     """
     self.parents = np.ravel(parents).astype(np.int)
     SubDomains.__init__(self, domain, label, id)