test_utils_nib.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:LabelsManager 作者: SebastianoF 项目源码 文件源码
def test_adjust_nifti_replace_translational_part_F_F():

    pfi_input = jph(root_dir, 'data_examples', 'acee.nii.gz')
    if not os.path.exists(pfi_input):
        generate_figures()

    translation = [1, 2, 3]
    pfi_output = jph(root_dir, 'data_examples', 'acee_new_header.nii.gz')

    im_a_cee = nib.load(pfi_input)
    initial_affine = im_a_cee.affine
    initial_qform = im_a_cee.get_qform()
    initial_sform = im_a_cee.get_sform()

    new_im = replace_translational_part(im_a_cee, translation, q_form=False, s_form=False)
    nib.save(new_im, pfi_output)

    im_a_cee_new = nib.load(pfi_output)
    final_affine = im_a_cee_new.affine
    final_qform = im_a_cee_new.get_qform()
    final_sform = im_a_cee_new.get_sform()

    new_transformation_expected = np.copy(initial_affine)
    new_transformation_expected[:3, 3] = translation

    # see documentaiton http://nipy.org/nibabel/nifti_images.html#choosing-image-affine
    if im_a_cee.header['sform_code'] > 0 :  # affine -> sform affine
        assert_array_almost_equal(initial_affine, final_affine)
        assert_array_almost_equal(initial_qform, final_qform)
        assert_array_almost_equal(initial_sform, final_sform)
    elif im_a_cee.header['qform_code'] > 0: # affine -> qform affine
        assert_array_almost_equal(initial_affine, final_affine)
        assert_array_almost_equal(initial_qform, final_qform)
        assert_array_almost_equal(initial_sform, final_sform)
    else: # affine -> header-off affine
        assert_array_almost_equal(new_transformation_expected, final_affine)
        assert_array_almost_equal(initial_qform, final_qform)
        assert_array_almost_equal(initial_sform, final_sform)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号