@@ -585,3 +585,33 @@ def test_load():
585
585
assert_array_equal (arr , nifti1 .load ('test.img' ).get_data ())
586
586
nifti1 .save (simg , 'test.hdr' )
587
587
assert_array_equal (arr , nifti1 .load ('test.hdr' ).get_data ())
588
+
589
+
590
+ def test_load_pixdims ():
591
+ # Make sure load preserves separate qform, pixdims, sform
592
+ arr = np .arange (24 ).reshape ((2 ,3 ,4 ))
593
+ qaff = np .diag ([2 , 3 , 4 , 1 ])
594
+ saff = np .diag ([5 , 6 , 7 , 1 ])
595
+ hdr = Nifti1Header ()
596
+ hdr .set_qform (qaff )
597
+ assert_array_equal (hdr .get_qform (), qaff )
598
+ hdr .set_sform (saff )
599
+ assert_array_equal (hdr .get_sform (), saff )
600
+ simg = Nifti1Image (arr , None , hdr )
601
+ img_hdr = simg .get_header ()
602
+ # Check qform, sform, pixdims are the same
603
+ assert_array_equal (img_hdr .get_qform (), qaff )
604
+ assert_array_equal (img_hdr .get_sform (), saff )
605
+ assert_array_equal (img_hdr .get_zooms (), [2 ,3 ,4 ])
606
+ # Save to stringio
607
+ fm = Nifti1Image .make_file_map ()
608
+ fm ['image' ].fileobj = StringIO ()
609
+ simg .to_file_map (fm )
610
+ # Load again
611
+ re_simg = Nifti1Image .from_file_map (fm )
612
+ assert_array_equal (re_simg .get_data (), arr )
613
+ # Check qform, sform, pixdims are the same
614
+ rimg_hdr = re_simg .get_header ()
615
+ assert_array_equal (rimg_hdr .get_qform (), qaff )
616
+ assert_array_equal (rimg_hdr .get_sform (), saff )
617
+ assert_array_equal (rimg_hdr .get_zooms (), [2 ,3 ,4 ])
0 commit comments