Exemplo n.º 1
0
def mni305_mni152(voxels):
    mni152_header, mni305_header = get_mni152_and_305_headers()
    ras = apply_trans(np.linalg.inv(mni305_header.get_vox2ras()), voxels)
    mni152 = np.rint(
        apply_trans(np.linalg.inv(mni152_header.get_vox2ras()),
                    ras)).astype(int)
    return mni152
Exemplo n.º 2
0
def mni_to_tkras(points,
                 subject,
                 subjects_dir,
                 tal_xfm=None,
                 orig_vox2ras=None,
                 orig_vox2tkras=None):
    # https://mail.nmr.mgh.harvard.edu/pipermail/freesurfer/2012-June/024293.html
    # MNI305RAS = TalXFM * orig_vox2ras * inv(orig_vox2tkras) * [tkrR tkrA tkrS 1]
    if tal_xfm is None:
        tal_xfm = get_talxfm(subject, subjects_dir)
    if orig_vox2ras is None:
        orig_vox2ras = get_vox2ras(
            op.join(subjects_dir, subject, 'mri', 'orig.mgz'))
    if orig_vox2tkras is None:
        orig_vox2tkras = get_vox2ras_tkr(
            op.join(subjects_dir, subject, 'mri', 'orig.mgz'))
    # Only in python 3.5:
    # trans = tal_xfm @ orig_vox2ras @ np.linalg.inv(orig_vox2tkras)
    # trans = tal_xfm.dot(orig_vox2ras).dot(np.linalg.inv(orig_vox2tkras))
    # trans = np.linalg.inv(trans)
    trans = inv(tal_xfm @ orig_vox2ras @ inv(orig_vox2tkras))
    # points = apply_trans(orig_vox2tkras, points)
    # points = apply_trans(np.linalg.inv(orig_vox2ras), points)
    # points = apply_trans(np.linalg.inv(tal_xfm), points)
    points = apply_trans(trans, points)
    return points
Exemplo n.º 3
0
def tkras_to_vox(points,
                 subject_orig_header=None,
                 subject='',
                 subjects_dir=''):
    if subject_orig_header is None:
        subject_orig_header = get_subject_orig_header(subject, subjects_dir)
    vox2ras_tkr = subject_orig_header.get_vox2ras_tkr()
    ras_tkr2vox = np.linalg.inv(vox2ras_tkr)
    vox = apply_trans(ras_tkr2vox, points)
    return vox
Exemplo n.º 4
0
def tkras_to_mni(points, subject, subjects_dir):
    # https://mail.nmr.mgh.harvard.edu/pipermail/freesurfer/2012-June/024293.html
    # MNI305RAS = TalXFM * orig_vox2ras * inv(orig_vox2tkras) * [tkrR tkrA tkrS 1]
    tal_xfm = get_talxfm(subject, subjects_dir)
    orig_vox2ras = get_vox2ras(
        op.join(subjects_dir, subject, 'mri', 'orig.mgz'))
    orig_vox2tkras = get_vox2ras_tkr(
        op.join(subjects_dir, subject, 'mri', 'orig.mgz'))
    trans = tal_xfm @ orig_vox2ras @ inv(orig_vox2tkras)
    points = apply_trans(trans, points)
    # points = apply_trans(tal_xfm, points)
    # points = apply_trans(orig_vox2ras, points)
    # points = apply_trans(np.linalg.inv(orig_vox2tkras), points)

    return points
Exemplo n.º 5
0
def vox_to_ras(points, subject_orig_header=None, subject='', subjects_dir=''):
    if subject_orig_header is None:
        subject_orig_header = get_subject_orig_header(subject, subjects_dir)
    vox2ras = subject_orig_header.get_vox2ras()
    ras = apply_trans(vox2ras, points)
    return ras
Exemplo n.º 6
0
def mni152_mni305(points):
    return apply_trans(np.linalg.inv(mni305_to_mni152_matrix()), points)
Exemplo n.º 7
0
def mni305_to_mni152(points):
    return apply_trans(mni305_to_mni152_matrix(), points)