當前位置: 首頁>>代碼示例>>Python>>正文


Python nibabel.aff2axcodes方法代碼示例

本文整理匯總了Python中nibabel.aff2axcodes方法的典型用法代碼示例。如果您正苦於以下問題:Python nibabel.aff2axcodes方法的具體用法?Python nibabel.aff2axcodes怎麽用?Python nibabel.aff2axcodes使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在nibabel的用法示例。


在下文中一共展示了nibabel.aff2axcodes方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: verify_all_same_orientation

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def verify_all_same_orientation(folder):
    """
    This should run after cropping
    :param folder:
    :return:
    """
    nii_files = subfiles(folder, suffix=".nii.gz", join=True)
    orientations = []
    for n in nii_files:
        img = nib.load(n)
        affine = img.affine
        orientation = nib.aff2axcodes(affine)
        orientations.append(orientation)
    # now we need to check whether they are all the same
    orientations = np.array(orientations)
    unique_orientations = np.unique(orientations, axis=0)
    all_same = len(unique_orientations) == 1
    return all_same, unique_orientations 
開發者ID:MIC-DKFZ,項目名稱:nnUNet,代碼行數:20,代碼來源:sanity_checks.py

示例2: test_orntd

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def test_orntd(self):
        data = {"seg": np.ones((2, 1, 2, 3)), "seg_meta_dict": {"affine": np.eye(4)}}
        ornt = Orientationd(keys="seg", axcodes="RAS")
        res = ornt(data)
        np.testing.assert_allclose(res["seg"].shape, (2, 1, 2, 3))
        code = nib.aff2axcodes(res["seg_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("R", "A", "S")) 
開發者ID:Project-MONAI,項目名稱:MONAI,代碼行數:9,代碼來源:test_orientationd.py

示例3: test_orntd_3d

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def test_orntd_3d(self):
        data = {
            "seg": np.ones((2, 1, 2, 3)),
            "img": np.ones((2, 1, 2, 3)),
            "seg_meta_dict": {"affine": np.eye(4)},
            "img_meta_dict": {"affine": np.eye(4)},
        }
        ornt = Orientationd(keys=("img", "seg"), axcodes="PLI")
        res = ornt(data)
        np.testing.assert_allclose(res["img"].shape, (2, 2, 1, 3))
        np.testing.assert_allclose(res["seg"].shape, (2, 2, 1, 3))
        code = nib.aff2axcodes(res["seg_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("P", "L", "I"))
        code = nib.aff2axcodes(res["img_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("P", "L", "I")) 
開發者ID:Project-MONAI,項目名稱:MONAI,代碼行數:17,代碼來源:test_orientationd.py

示例4: test_orntd_2d

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def test_orntd_2d(self):
        data = {
            "seg": np.ones((2, 1, 3)),
            "img": np.ones((2, 1, 3)),
            "seg_meta_dict": {"affine": np.eye(4)},
            "img_meta_dict": {"affine": np.eye(4)},
        }
        ornt = Orientationd(keys=("img", "seg"), axcodes="PLI")
        res = ornt(data)
        np.testing.assert_allclose(res["img"].shape, (2, 3, 1))
        code = nib.aff2axcodes(res["seg_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("P", "L", "S"))
        code = nib.aff2axcodes(res["img_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("P", "L", "S")) 
開發者ID:Project-MONAI,項目名稱:MONAI,代碼行數:16,代碼來源:test_orientationd.py

示例5: test_orntd_1d

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def test_orntd_1d(self):
        data = {
            "seg": np.ones((2, 3)),
            "img": np.ones((2, 3)),
            "seg_meta_dict": {"affine": np.eye(4)},
            "img_meta_dict": {"affine": np.eye(4)},
        }
        ornt = Orientationd(keys=("img", "seg"), axcodes="L")
        res = ornt(data)
        np.testing.assert_allclose(res["img"].shape, (2, 3))
        code = nib.aff2axcodes(res["seg_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("L", "A", "S"))
        code = nib.aff2axcodes(res["img_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("L", "A", "S")) 
開發者ID:Project-MONAI,項目名稱:MONAI,代碼行數:16,代碼來源:test_orientationd.py

示例6: test_orntd_canonical

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def test_orntd_canonical(self):
        data = {
            "seg": np.ones((2, 1, 2, 3)),
            "img": np.ones((2, 1, 2, 3)),
            "seg_meta_dict": {"affine": np.eye(4)},
            "img_meta_dict": {"affine": np.eye(4)},
        }
        ornt = Orientationd(keys=("img", "seg"), as_closest_canonical=True)
        res = ornt(data)
        np.testing.assert_allclose(res["img"].shape, (2, 1, 2, 3))
        np.testing.assert_allclose(res["seg"].shape, (2, 1, 2, 3))
        code = nib.aff2axcodes(res["seg_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("R", "A", "S"))
        code = nib.aff2axcodes(res["img_meta_dict"]["affine"], ornt.ornt_transform.labels)
        self.assertEqual(code, ("R", "A", "S")) 
開發者ID:Project-MONAI,項目名稱:MONAI,代碼行數:17,代碼來源:test_orientationd.py

示例7: apply_transform

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
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 
開發者ID:fepegar,項目名稱:torchio,代碼行數:16,代碼來源:to_canonical.py

示例8: orientation

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def orientation(self):
        return nib.aff2axcodes(self.affine) 
開發者ID:fepegar,項目名稱:torchio,代碼行數:4,代碼來源:image.py

示例9: name_dimensions

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def name_dimensions(tensor, affine):
    axcodes = nib.aff2axcodes(affine)
    names = [AXCODES_TO_WORDS[axcode] for axcode in axcodes]
    with warnings.catch_warnings():
        warnings.simplefilter('ignore', UserWarning)
        tensor.rename_(*names) 
開發者ID:fepegar,項目名稱:torchio,代碼行數:8,代碼來源:orientation.py

示例10: _get_mgdm_orientation

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def _get_mgdm_orientation(affine, mgdm):
    '''
    Transforms nibabel affine information into
    orientation and slice order that MGDM understands
    '''
    orientation = nb.aff2axcodes(affine)
    # set mgdm slice order
    if orientation[-1] == "I" or orientation[-1] == "S":
        sliceorder = mgdm.AXIAL
    elif orientation[-1] == "L" or orientation[-1] == "R":
        sliceorder = mgdm.SAGITTAL
    else:
        sliceorder = mgdm.CORONAL

    # set mgdm orientations
    if "L" in orientation:
        LR = mgdm.R2L
    elif "R" in orientation:
        LR = mgdm.L2R  # flipLR = True
    if "A" in orientation:
        AP = mgdm.P2A  # flipAP = True
    elif "P" in orientation:
        AP = mgdm.A2P
    if "I" in orientation:
        IS = mgdm.S2I  # flipIS = True
    elif "S" in orientation:
        IS = mgdm.I2S

    return sliceorder, LR, AP, IS 
開發者ID:nighres,項目名稱:nighres,代碼行數:31,代碼來源:mgdm_segmentation.py

示例11: spikes_mask

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def spikes_mask(in_file, in_mask=None, out_file=None):
    """Calculate a mask in which check for :abbr:`EM (electromagnetic)` spikes."""
    import os.path as op
    import nibabel as nb
    import numpy as np
    from nilearn.image import mean_img
    from nilearn.plotting import plot_roi
    from scipy import ndimage as nd

    if out_file is None:
        fname, ext = op.splitext(op.basename(in_file))
        if ext == '.gz':
            fname, ext2 = op.splitext(fname)
            ext = ext2 + ext
        out_file = op.abspath('{}_spmask{}'.format(fname, ext))
        out_plot = op.abspath('{}_spmask.pdf'.format(fname))

    in_4d_nii = nb.load(in_file)
    orientation = nb.aff2axcodes(in_4d_nii.affine)

    if in_mask:
        mask_data = nb.load(in_mask).get_data()
        a = np.where(mask_data != 0)
        bbox = np.max(a[0]) - np.min(a[0]), np.max(a[1]) - \
            np.min(a[1]), np.max(a[2]) - np.min(a[2])
        longest_axis = np.argmax(bbox)

        # Input here is a binarized and intersected mask data from previous section
        dil_mask = nd.binary_dilation(
            mask_data, iterations=int(mask_data.shape[longest_axis] / 9))

        rep = list(mask_data.shape)
        rep[longest_axis] = -1
        new_mask_2d = dil_mask.max(axis=longest_axis).reshape(rep)

        rep = [1, 1, 1]
        rep[longest_axis] = mask_data.shape[longest_axis]
        new_mask_3d = np.logical_not(np.tile(new_mask_2d, rep))
    else:
        new_mask_3d = np.zeros(in_4d_nii.shape[:3]) == 1

    if orientation[0] in ['L', 'R']:
        new_mask_3d[0:2, :, :] = True
        new_mask_3d[-3:-1, :, :] = True
    else:
        new_mask_3d[:, 0:2, :] = True
        new_mask_3d[:, -3:-1, :] = True

    mask_nii = nb.Nifti1Image(new_mask_3d.astype(np.uint8), in_4d_nii.affine,
                              in_4d_nii.header)
    mask_nii.to_filename(out_file)

    plot_roi(mask_nii, mean_img(in_4d_nii), output_file=out_plot)
    return out_file, out_plot 
開發者ID:poldracklab,項目名稱:mriqc,代碼行數:56,代碼來源:functional.py

示例12: _reorient_image

# 需要導入模塊: import nibabel [as 別名]
# 或者: from nibabel import aff2axcodes [as 別名]
def _reorient_image(img, *, target_img=None, orientation=None):
    """
    Coerce an image to a target orientation.

    .. note::
        Only RAS -> LAS conversion is currently supported

    Parameters
    ----------
    img : :obj:`SpatialImage`
        image to be reoriented
    target_img : :obj:`SpatialImage`, optional
        target in desired orientation
    orientation : :obj:`str` or :obj:`tuple`, optional
        desired orientation, if no target image is provided

    .. testsetup::
    >>> img = nb.load(Path(test_data) / 'testRobustMNINormalizationRPTMovingWarpedImage.nii.gz')
    >>> las_img = img.as_reoriented([[0, -1], [1, 1], [2, 1]])

    Examples
    --------
    >>> nimg = _reorient_image(img, target_img=img)
    >>> nb.aff2axcodes(nimg.affine)
    ('R', 'A', 'S')

    >>> nimg = _reorient_image(img, target_img=las_img)
    >>> nb.aff2axcodes(nimg.affine)
    ('L', 'A', 'S')

    >>> nimg = _reorient_image(img, orientation='LAS')
    >>> nb.aff2axcodes(nimg.affine)
    ('L', 'A', 'S')

    >>> _reorient_image(img, orientation='LPI')
    Traceback (most recent call last):
      ...
    NotImplementedError: Cannot reorient ...

    >>> _reorient_image(img)
    Traceback (most recent call last):
      ...
    RuntimeError: No orientation ...

    """
    orient0 = nb.aff2axcodes(img.affine)
    if target_img is not None:
        orient1 = nb.aff2axcodes(target_img.affine)
    elif orientation is not None:
        orient1 = tuple(orientation)
    else:
        raise RuntimeError("No orientation to reorient to!")

    if orient0 == orient1:  # already in desired orientation
        return img
    elif orient0 == tuple("RAS") and orient1 == tuple("LAS"):  # RAS -> LAS
        return img.as_reoriented([[0, -1], [1, 1], [2, 1]])
    else:
        raise NotImplementedError(
            "Cannot reorient {0} to {1}.".format(orient0, orient1)
        ) 
開發者ID:nipreps,項目名稱:niworkflows,代碼行數:63,代碼來源:cifti.py


注:本文中的nibabel.aff2axcodes方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。