Changeset 170 for vnmr_recon/epi_recon.m


Ignore:
Timestamp:
Jul 22, 2011, 2:24:53 PM (8 years ago)
Author:
tjniskan
Message:
  • Epi reconstruction code now consideres all images in the data prior to image=0 as dummy scans

M aedes_revision.m
M vnmr_recon/epi_recon.m

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vnmr_recon/epi_recon.m

    r169 r170  
    66% this code reconstructs
    77if nargin==0
    8   kspace = {'epi_se_rapid_sp3','epi','epi_fMRI','epip','epiT1rho'};
     8  kspace = {'epi_se_rapid_sp3','epi','epi_fMRI','epip','epip_fMRI','epiT1rho'};
    99  return
    1010end
     
    8282                nSeg = 1;
    8383        end
     84        %procpar.image = [1 1 0 -2 -1 1 1 1 1];
     85        % Get index to first reference image
     86        ref_start = find(procpar.image == 0);
     87        ref_start = ref_start(1);
     88        nDummys = 0;
     89        if isempty(ref_start)
     90                kspace = [];
     91                data = [];
     92                msg_out = 'Reference image(s) not found.';
     93                return
     94        elseif ref_start(1) > 1
     95                nDummys = ref_start-1;
     96                warning('Rejecting %d volumes before first reference image as dummy scans...',nDummys);
     97        end
    8498       
    8599        % Number of volumes
    86         nVols = length(procpar.image)-nRef;
     100        nVols = length(procpar.image(nDummys+1:end))-nRef;
    87101       
    88102        % Number of slices
    89103        ns = procpar.ns;
    90        
    91104       
    92105        if isEPIP
     
    133146       
    134147        % Reshape kspace and detach reference images
    135         kspace = reshape(kspace,np,nv+nNav*nSeg,ns,nRcvrs,nVols+nRef);
    136        
    137         ref_data = kspace(:,DataInd,:,:,1:nRef);
     148        kspace = reshape(kspace,np,nv+nNav*nSeg,ns,nRcvrs,nVols+nRef+nDummys);
     149       
     150        ref1_ind = find(procpar.image==0,1);
     151        ref2_ind = find(procpar.image==-2,1);
     152        im1_ind = find(procpar.image==-1,1);
     153       
     154        ref_data = kspace(:,DataInd,:,:,[ref1_ind ref2_ind im1_ind]);
    138155        if ~isempty(pe_table)
    139156                ref_data(:,pe_table,:,:,:) = ref_data;
     
    148165        for ii=1:nRcvrs
    149166                if nRef==1
    150       ref_im = ref_data(:,:,:,ii,1);
     167      %ref_im = ref_data(:,:,:,ii,ref1_ind);
     168                        ref_im = ref_data(:,:,:,ii,1);
    151169      phase1 = exp(-sqrt(-1)*angle(fft(ref_im,[],1)));
    152170                        rev_phase = 1;
    153171                        phase_e(:,:,:,ii,:) = phase1;
    154172                elseif nRef==3
    155                         ref1_ind = find(procpar.image==0,1);
    156                         ref1 = ref_data(:,:,:,ii,ref1_ind);
     173                        %ref1_ind = find(procpar.image==0,1);
     174                        %ref1 = ref_data(:,:,:,ii,ref1_ind);
     175                        ref1 = ref_data(:,:,:,ii,1);
    157176                        phase1 = exp(-sqrt(-1)*angle(fft(ref1,[],1)));
    158177                       
    159                         ref2_ind = find(procpar.image==-2,1);
    160                         ref2 = flipdim(ref_data(:,:,:,ii,ref2_ind),1);
     178                        %ref2_ind = find(procpar.image==-2,1);
     179                        %ref2 = flipdim(ref_data(:,:,:,ii,ref2_ind),1);
     180                        ref2 = flipdim(ref_data(:,:,:,ii,2),1);
    161181                        phase2 = exp(-sqrt(-1)*angle(fft(ref2,[],1)));
    162182                       
    163                         im1_ind = find(procpar.image==-1,1);
    164                         im1 = flipdim(ref_data(:,:,:,ii,im1_ind),1);
     183                        %im1_ind = find(procpar.image==-1,1);
     184                        %im1 = flipdim(ref_data(:,:,:,ii,im1_ind),1);
     185                        im1 = flipdim(ref_data(:,:,:,ii,3),1);
     186                       
    165187                       
    166188                        rev_phase(:,:,:,ii,:) = fft(im1,[],1).*phase2;
     
    184206                tmp_data = [];
    185207                if ii==nBlocks
    186                         vol_inds = (ii-1)*blksz+1+nRef:nVols+nRef;
     208                        vol_inds = (ii-1)*blksz+1+nRef+nDummys:nVols+nRef+nDummys;
    187209                else
    188                         vol_inds = (ii-1)*blksz+1+nRef:ii*blksz+nRef;
     210                        vol_inds = (ii-1)*blksz+1+nRef+nDummys:ii*blksz+nRef+nDummys;
    189211                end
    190212               
     
    234256                                data_block = flipdim(data_block,2);
    235257                        end
    236                         data(:,:,:,vol_inds-nRef) = squeeze(data_block);
     258                        data(:,:,:,vol_inds-nRef-nDummys) = squeeze(data_block);
    237259                end
    238260               
Note: See TracChangeset for help on using the changeset viewer.

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