12345678910111213141516171819202122232425262728293031323334353637383940 |
- % Undo the flipping and rotations performed by xform_nii; spit back only
- % the raw img data block. Initial cut will only deal with 3D volumes
- % strongly assume we have called xform_nii to write down the steps used
- % in xform_nii.
- %
- % Usage: a = load_nii('original_name');
- % manipulate a.img to make array b;
- %
- % if you use unxform_nii to un-tranform the image (img) data
- % block, then nii.original.hdr is the corresponding header.
- %
- % nii.original.img = unxform_nii(a, b);
- % save_nii(nii.original,'newname');
- %
- % Where, 'newname' is created with data in the same space as the
- % original_name data
- %
- % - Jeff Gunter, 26-JUN-06
- %
- function outblock = unxform_nii(nii, inblock)
-
- if isempty(nii.hdr.hist.rot_orient)
- outblock=inblock;
- else
- [dummy unrotate_orient] = sort(nii.hdr.hist.rot_orient);
- outblock = permute(inblock, unrotate_orient);
- end
- if ~isempty(nii.hdr.hist.flip_orient)
- flip_orient = nii.hdr.hist.flip_orient(unrotate_orient);
- for i = 1:3
- if flip_orient(i)
- outblock = flipdim(outblock, i);
- end
- end
- end;
- return;
|