print 'With respect to scale factor x', scale # Cubic Interpolation if TargetShape != InputShape: InputImage = scipy.ndimage.zoom(InputImage, zoom=scale, order=args.order) # Shave border LabelImage = shave3D(ReferenceImage, border) DataImage = shave3D(InputImage, border) # Extract 3D patches DataPatch = array_to_patches(DataImage, patch_shape=(PatchSize, PatchSize, PatchSize), extraction_step=args.stride, normalization=False) print 'for the (interpolated or not) low-resolution patches of training phase.' LabelPatch = array_to_patches(LabelImage, patch_shape=(PatchSize, PatchSize, PatchSize), extraction_step=args.stride, normalization=False) print 'for the reference high-resolution patches of training phase.' # Append array HDF5Datas.append(DataPatch) HDF5Labels.append(LabelPatch) # List type to array numpy HDF5Datas = np.asarray(HDF5Datas).reshape(-1, PatchSize, PatchSize,
NormalizedT1wImage = T1wImage/MaxValue # Shave region outside print 'Remove the region outside the brain with the value of ', args.thresholdvalue darkRegionValue = args.thresholdvalue darkRegionBox = np.where(NormalizedT1wImage>darkRegionValue) border = ((np.min(darkRegionBox[0]),np.max(darkRegionBox[0])), (np.min(darkRegionBox[1]),np.max(darkRegionBox[1])), (np.min(darkRegionBox[2]),np.max(darkRegionBox[2]))) DatasT1wImage = NormalizedT1wImage[border[0][0]:border[0][1], border[1][0]:border[1][1], border[2][0]:border[2][1]] # Extract 3D patches DatasT1wPatch = array_to_patches(DatasT1wImage, patch_shape=(PatchSize,PatchSize,PatchSize), extraction_step = args.stride , normalization=False) print 'for patches of training phase.' # n-dimensional Caffe supports data's form : [numberOfBatches,channels,heigh,width,depth] # Add channel axis ! DatasT1wPatch = DatasT1wPatch[:,np.newaxis,:,:,:] # Rearrange RandomOrder = np.random.permutation(DatasT1wPatch.shape[0]) DatasT1wPatch = DatasT1wPatch[RandomOrder,:,:,:,:] # Crop data to desired number of samples if args.samples : DatasT1wPatch = DatasT1wPatch[:args.samples ,...]