Python nibabel.as_closest_canonical() Examples
The following are 30
code examples of nibabel.as_closest_canonical().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
nibabel
, or try the search function
.
Example #1
Source File: fast_bet.py From TFCE_mediation with GNU General Public License v3.0 | 6 votes |
def run(opts): img = nib.as_closest_canonical(nib.load(opts.image[0])) # for pesky LR flipping data = img.get_data() hdr = img.get_header() low_threshold, _ = autothreshold(data, threshold_type = opts.thresholdalgorithm) print(low_threshold) mask = np.zeros_like(data) mask[:] = data mask[mask < low_threshold] = 0 # mask[mask != 0] = 1 nib.save(nib.Nifti1Image(mask.astype(np.float32, order = "C"),affine=img.affine),'temp.nii.gz') os.system(os.environ["FSLDIR"] + "/bin/bet temp.nii.gz temp_brain.nii.gz -m -f 0.3") betmask = nib.as_closest_canonical(nib.load('temp_brain_mask.nii.gz')).get_data() data[betmask!=1] = 0 if opts.output: nib.save(nib.Nifti1Image(data.astype(np.float32, order = "C"),affine=img.affine), opts.output[0]) elif opts.replace: base, name = os.path.split(opts.replace[0]) os.system("mv %s %s/backup_%s" % (opts.replace[0], base, name)) nib.save(nib.Nifti1Image(data.astype(np.float32, order = "C"),affine=img.affine), opts.replace[0]) else: nib.save(nib.Nifti1Image(data.astype(np.float32, order = "C"),affine=img.affine),'bet_' + opts.image[0]) os.system("rm temp*.nii.gz")
Example #2
Source File: utils.py From mriqc with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _get_limits(nifti_file, only_plot_noise=False): if isinstance(nifti_file, str): nii = nb.as_closest_canonical(nb.load(nifti_file)) data = nii.get_data() else: data = nifti_file data_mask = np.logical_not(np.isnan(data)) if only_plot_noise: data_mask = np.logical_and(data_mask, data != 0) vmin = np.percentile(data[data_mask], 0) vmax = np.percentile(data[data_mask], 61) else: vmin = np.percentile(data[data_mask], 0.5) vmax = np.percentile(data[data_mask], 99.5) return vmin, vmax
Example #3
Source File: functional_mri.py From visualqc with Apache License 2.0 | 6 votes |
def load_unit(self, unit_id): """Loads the image data for display.""" img_path = self.unit_by_id[unit_id]['image'] params_path = self.unit_by_id[unit_id]['params'] try: hdr = nib.load(img_path) self.hdr_this_unit = nib.as_closest_canonical(hdr) self.img_this_unit_raw = self.hdr_this_unit.get_data() except Exception as exc: print(exc) print('Unable to read image at \n\t{}'.format(img_path)) skip_subject = True else: check_image_is_4d(self.img_this_unit_raw) self.TR_this_unit = self.hdr_this_unit.header.get_zooms()[-1] skip_subject = False if np.count_nonzero(self.img_this_unit_raw) == 0: skip_subject = True print('Functional image is empty!') return skip_subject
Example #4
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #5
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #6
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #7
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #8
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #9
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #10
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #11
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #12
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #13
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #14
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #15
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #16
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #17
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #18
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #19
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #20
Source File: medical_image_process.py From MedicalZooPytorch with MIT License | 5 votes |
def load_medical_image(path, type=None, resample=None, viz3d=False, to_canonical=False, rescale=None, normalization='full_volume_mean', clip_intenisty=True, crop_size=(0, 0, 0), crop=(0, 0, 0), ): img_nii = nib.load(path) if to_canonical: img_nii = nib.as_closest_canonical(img_nii) if resample is not None: img_nii = resample_to_output(img_nii, voxel_sizes=resample) img_np = np.squeeze(img_nii.get_fdata(dtype=np.float32)) if viz3d: return torch.from_numpy(img_np) # 1. Intensity outlier clipping if clip_intenisty and type != "label": img_np = percentile_clip(img_np) # 2. Rescale to specified output shape if rescale is not None: rescale_data_volume(img_np, rescale) # 3. intensity normalization img_tensor = torch.from_numpy(img_np) MEAN, STD, MAX, MIN = 0., 1., 1., 0. if type != 'label': MEAN, STD = img_tensor.mean(), img_tensor.std() MAX, MIN = img_tensor.max(), img_tensor.min() if type != "label": img_tensor = normalize_intensity(img_tensor, normalization=normalization, norm_values=(MEAN, STD, MAX, MIN)) img_tensor = crop_img(img_tensor, crop_size, crop) return img_tensor
Example #21
Source File: sanity_checks.py From nnUNet with Apache License 2.0 | 5 votes |
def reorient_to_RAS(img_fname: str, output_fname: str = None): img = nib.load(img_fname) canonical_img = nib.as_closest_canonical(img) if output_fname is None: output_fname = img_fname nib.save(canonical_img, output_fname)
Example #22
Source File: to_canonical.py From torchio with MIT License | 5 votes |
def apply_transform(self, sample: Subject) -> dict: for image_dict in sample.get_images(intensity_only=False): affine = image_dict[AFFINE] if nib.aff2axcodes(affine) == tuple('RAS'): continue array = image_dict[DATA][0].numpy() nii = nib.Nifti1Image(array, affine) reoriented = nib.as_closest_canonical(nii) array = reoriented.get_fdata(dtype=np.float32) # https://github.com/facebookresearch/InferSent/issues/99#issuecomment-446175325 array = array.copy()[np.newaxis, ...] image_dict[DATA] = torch.from_numpy(array) image_dict[AFFINE] = reoriented.affine return sample
Example #23
Source File: utils.py From visualqc with Apache License 2.0 | 5 votes |
def read_image(img_spec, error_msg='image', num_dims=3, reorient_canonical=True): """Image reader. Removes stray values close to zero (smaller than 5 %ile).""" if isinstance(img_spec, str): if pexists(realpath(img_spec)): hdr = nib.load(img_spec) # trying to stick to an orientation if reorient_canonical: hdr = nib.as_closest_canonical(hdr) img = hdr.get_data() else: raise IOError('Given path to {} does not exist!\n\t{}' ''.format(error_msg, img_spec)) elif isinstance(img_spec, np.ndarray): img = img_spec else: raise ValueError('Invalid input specified! ' 'Input either a path to image data, ' 'or provide 3d Matrix directly.') if num_dims == 3: img = check_image_is_3d(img) elif num_dims == 4: check_image_is_4d(img) else: raise ValueError('Requested check for {} dims - allowed: 3 or 4!') if not np.issubdtype(img.dtype, np.float64): img = img.astype('float32') return img
Example #24
Source File: images.py From niworkflows with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _run_interface(self, runtime): # Load images, orient as RAS, collect shape and zoom data in_names = np.array(self.inputs.t1w_list) orig_imgs = np.vectorize(nb.load)(in_names) reoriented = np.vectorize(nb.as_closest_canonical)(orig_imgs) all_zooms = np.array([img.header.get_zooms()[:3] for img in reoriented]) all_shapes = np.array([img.shape[:3] for img in reoriented]) # Identify images that would require excessive up-sampling valid = np.ones(all_zooms.shape[0], dtype=bool) while valid.any(): target_zooms = all_zooms[valid].min(axis=0) scales = all_zooms[valid] / target_zooms if np.all(scales < self.inputs.max_scale): break valid[valid] ^= np.any(scales == scales.max(), axis=1) # Ignore dropped images valid_fnames = np.atleast_1d(in_names[valid]).tolist() self._results["t1w_valid_list"] = valid_fnames # Set target shape information target_zooms = all_zooms[valid].min(axis=0) target_shape = all_shapes[valid].max(axis=0) self._results["target_zooms"] = tuple(target_zooms.tolist()) self._results["target_shape"] = tuple(target_shape.tolist()) # Create report dropped_images = in_names[~valid] segment = self._generate_segment(dropped_images, target_shape, target_zooms) out_report = os.path.join(runtime.cwd, "report.html") with open(out_report, "w") as fobj: fobj.write(segment) self._results["out_report"] = out_report return runtime
Example #25
Source File: images.py From niworkflows with BSD 3-Clause "New" or "Revised" License | 5 votes |
def reorient(in_file, newpath=None): """Reorient Nifti files to RAS.""" out_file = fname_presuffix(in_file, suffix="_ras", newpath=newpath) nb.as_closest_canonical(nb.load(in_file)).to_filename(out_file) return out_file
Example #26
Source File: io.py From nobrainer with Apache License 2.0 | 5 votes |
def read_volume(filepath, dtype=None, return_affine=False, to_ras=False): """Return numpy array of data from a neuroimaging file.""" img = nib.load(filepath) if to_ras: img = nib.as_closest_canonical(img) data = img.get_fdata(caching="unchanged") if dtype is not None: data = data.astype(dtype) return data if not return_affine else (data, img.affine)
Example #27
Source File: Task062_NIHPancreas.py From nnUNet with Apache License 2.0 | 5 votes |
def reorient(filename): img = nibabel.load(filename) img = nibabel.as_closest_canonical(img) nibabel.save(img, filename)
Example #28
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #29
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)
Example #30
Source File: datasets.py From U-Net-Fixed-Point-Quantization-for-Medical-Image-Segmentation with MIT License | 5 votes |
def __init__(self, input_filename, gt_filename, cache=True, canonical=False): self.input_filename = input_filename self.gt_filename = gt_filename self.canonical = canonical self.cache = cache self.input_handle = nib.load(self.input_filename) # Unlabeled data (inference time) if self.gt_filename is None: self.gt_handle = None else: self.gt_handle = nib.load(self.gt_filename) if len(self.input_handle.shape) > 3: raise RuntimeError("4-dimensional volumes not supported.") # Sanity check for dimensions, should be the same input_shape, gt_shape = self.get_pair_shapes() if self.gt_handle is not None: if not np.allclose(input_shape, gt_shape): raise RuntimeError('Input and ground truth with different dimensions.') if self.canonical: self.input_handle = nib.as_closest_canonical(self.input_handle) # Unlabeled data if self.gt_handle is not None: self.gt_handle = nib.as_closest_canonical(self.gt_handle)