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
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
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