Example #1
0
 def _data_aug(self, subinputs, subtlbls, submsks):
     # random transformation roll
     if self.pars['is_data_aug']:
         rft = (np.random.rand(4)>0.5)
         for key, subinput in subinputs.iteritems():
             subinputs[key] = utils.data_aug_transform(subinput,      rft )
         for key, subtlbl in subtlbls.iteritems():
             subtlbls[key]  = utils.data_aug_transform(subtlbl, rft )
             submsks[key]   = utils.data_aug_transform(submsks[key],  rft )
     return subinputs, subtlbls, submsks
Example #2
0
 def _data_aug(self, subinputs, subtlbls, submsks):
     # random transformation roll
     if self.pars['is_data_aug']:
         rft = (np.random.rand(4) > 0.5)
         for key, subinput in subinputs.items():
             subinputs[key] = utils.data_aug_transform(subinput, rft)
         for key, subtlbl in subtlbls.items():
             subtlbls[key] = utils.data_aug_transform(subtlbl, rft)
             submsks[key] = utils.data_aug_transform(submsks[key], rft)
     return subinputs, subtlbls, submsks
Example #3
0
    def get_subvolume(self, dev, rft=None, data=None):
        """
        Returns a 4d subvolume of the data volume, specified
        by deviation from the center voxel. Performs data
        augmentation if specified by the rft argument.

        Can also retrieve subvolume of a passed 4d array

        Parameters
        ----------
        dev : the deviation from the whole volume center
        rft : the random transformation rule.

        Return
        -------
        subvol : the transformed sub volume.
        """

        if data is None:
            data = self.data

        loc = self.center + dev

        # extract volume
        subvol  = data[ :,
            loc[0]-self.patch_margin_low[0]  : loc[0] + self.patch_margin_high[0]+1,\
            loc[1]-self.patch_margin_low[1]  : loc[1] + self.patch_margin_high[1]+1,\
            loc[2]-self.patch_margin_low[2]  : loc[2] + self.patch_margin_high[2]+1]

        if rft is not None:
            subvol = utils.data_aug_transform(subvol, rft)

        return subvol
    def get_subvolume(self, dev, rft=None, data=None):
        """
        Returns a 4d subvolume of the data volume, specified
        by deviation from the center voxel. Performs data
        augmentation if specified by the rft argument.

        Can also retrieve subvolume of a passed 4d array

        Parameters
        ----------
        dev : the deviation from the whole volume center
        rft : the random transformation rule.

        Return
        -------
        subvol : the transformed sub volume.
        """

        if data is None:
            data = self.data

        loc = self.center + dev

        # extract volume
        subvol  = data[ :,
            loc[0]-self.patch_margin_low[0]  : loc[0] + self.patch_margin_high[0]+1,\
            loc[1]-self.patch_margin_low[1]  : loc[1] + self.patch_margin_high[1]+1,\
            loc[2]-self.patch_margin_low[2]  : loc[2] + self.patch_margin_high[2]+1]

        if rft is not None:
            subvol = utils.data_aug_transform(subvol, rft)

        return subvol