Changeset 211


Ignore:
Timestamp:
Apr 1, 2014, 7:53:10 PM (3 years ago)
Author:
tjniskan
Message:
  • Added an option for inputting custom rotation matrix to aedes_write_nifti.m

M aedes_write_nifti.m
M aedes_revision.m

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • aedes_revision.m

    r210 r211  
    9393% bash-script every time it is called so that this file "aedes_revision.m" is
    9494% always in the list of committed files. DO NOT EDIT THE NEXT LINE!!!
    95 % - Svn Hook -
     95% - SVN Hook -
  • aedes_write_nifti.m

    r101 r211  
    5252%                         {'Unknown'} ]
    5353%
     54%       'RotMtx'        (3x3 or 3x4 matrix)       % User specified rotation
     55%                                                 % matrix. Stored using
     56%                                                 % the sform method. NOTE:
     57%                                                 % For NIfTI only. 
     58%
    5459%       'machine'       [ {'ieee-le'}|'ieee-be' ] % little-endian
    5560%                                                 % (default) or
     
    128133Dat.Descrip = '';
    129134Dat.FlipOrient = 0;
     135Dat.RotMtx = [];
    130136done=false;
    131137writeOnlyHeader=0;
     
    232238      case 'clim'
    233239        Dat.Clim = varargin{ii+1};
    234                
     240                               
     241                        case 'rotmtx'
     242                                tmp_val = varargin{ii+1};
     243                                sz = size(tmp_val);
     244                                if isnumeric(tmp_val) && length(sz)==2 && sz(1)==3 && any(sz(2)==[3 4])
     245                                        Dat.RotMtx = varargin{ii+1};
     246                                else
     247                                        error('Rotation matrix has to be given as a 3x3 or 3x4 matrix.')
     248                                end
    235249          case 'description'
    236250                Dat.Descrip = varargin{ii+1};
     
    605619      end
    606620    end
    607   end
     621        end
     622       
     623        % Input a custom rotation matrix to NIfTI file, if given
     624        if any(Dat.filetype==[1 2]) && ~isempty(Dat.RotMtx)
     625                hdr.hist.sform_code=1;
     626                hdr.hist.srow_x = Dat.RotMtx(1,1:3);
     627                hdr.hist.srow_y = Dat.RotMtx(2,1:3);
     628                hdr.hist.srow_z = Dat.RotMtx(3,1:3);
     629                if size(Dat.RotMtx,2)==3
     630                        hdr.hist.srow_x(4) = (1-hdr.hist.originator(1))*hdr.dime.pixdim(2);
     631                        hdr.hist.srow_y(4) = (1-hdr.hist.originator(2))*hdr.dime.pixdim(3);
     632                        hdr.hist.srow_z(4) = (1-hdr.hist.originator(3))*hdr.dime.pixdim(4);
     633                else
     634                        hdr.hist.srow_x(4) = Dat.RotMtx(1,4);
     635                        hdr.hist.srow_y(4) = Dat.RotMtx(2,4);
     636                        hdr.hist.srow_z(4) = Dat.RotMtx(3,4);
     637                end
     638        end
    608639 
    609640  % Units of spatial and temporal dimensions:
Note: See TracChangeset for help on using the changeset viewer.

Powered by Trac 1.0.9.Copyright © Juha-Pekka Niskanen 2008