Changeset 120 for aedes_readfid.m


Ignore:
Timestamp:
Apr 14, 2010, 5:03:43 PM (9 years ago)
Author:
tjniskan
Message:
  • Fixed an indexing bug in aedes_readfid when reading multireceiver

EPI data

  • Added EPIPhasedArrayData -property to aedes_readfid for manually

getting the data from individual coils from multireceiver EPI data

  • Fixed aedes_rot3d to work with n-D arrays
  • Added 18 new ROI colors and removed the ROI number limitation

M aedes_rot3d.m
M aedes.m
M aedes_readfid.m
M aedes_revision.m

File:
1 edited

Legend:

Unmodified
Added
Removed
  • aedes_readfid.m

    r119 r120  
    148148%                                               % EPI data. Default=100
    149149%
     150%        'EPIPhasedArrayData' : ['on'|{'off'}]  % Return data from
     151%                                               % individual receivers from
     152%                                               % phased array EPI files.
     153%
    150154% Examples:
    151155%        [DATA,msg]=aedes_readfid(filename)             % Read image data from 'filename'
     
    222226Dat.RemoveEPIphaseIm = true;
    223227Dat.EPIBlockSize = 100;
     228Dat.EPIPhasedArrayData = false;
    224229Dat.OrientImages = true;
    225230
     
    441446      case 'epiblocksize'
    442447        Dat.EPIBlockSize = round(varargin{ii+1});
     448       
     449      case 'epiphasedarraydata'
     450        if strcmpi(varargin{ii+1},'on')
     451          Dat.EPIPhasedArrayData = true;
     452        else
     453          Dat.EPIPhasedArrayData = false;
     454        end
    443455      case 'orientimages'
    444456        if strcmpi(varargin{ii+1},'off')
     
    13531365      nRef = 3;
    13541366    end
    1355     nVols = size(kspace,3)/nRcv-1;
    1356     data = zeros(procpar.nv,procpar.np/2,procpar.ns,nVols+1,'single');
     1367    nVols = size(kspace,3)/nRcv-nRef;
     1368    if Dat.EPIPhasedArrayData
     1369      data = zeros(procpar.nv,procpar.np/2,procpar.ns,nVols+nRef,nRcv,'single');
     1370    else
     1371      data = zeros(procpar.nv,procpar.np/2,procpar.ns,nVols+nRef,'single');
     1372    end
    13571373    kssz=size(kspace);
    13581374    blksz = Dat.EPIBlockSize; % Process EPI data in 100 volume blocks (default)
     
    13681384      tmp_data = [];
    13691385      for kk=1:nRcv
    1370         inds = [kk:nRcv:nRcv*nRef ((ii-1)*blksz*nRcv+nRcv*nRef+kk):nRcv:min((nRcv*ii*blksz+kk),kssz(3))];
     1386        inds_ref = kk:nRcv:nRcv*nRef;
     1387        inds_im = (nRcv*nRef+kk):nRcv:kssz(3);
     1388        inds = cat(2,inds_ref,inds_im(((ii-1)*blksz+1):min(ii*blksz,nVols)));
    13711389        tmp_kspace = l_ReconstructKspace(kspace(:,:,inds),procpar,Dat);
    13721390        tmp_data(:,:,:,:,kk) = fftshift(fftshift(fft(fft(tmp_kspace,[],1),[],2),1),2);
    13731391      end
     1392      if Dat.EPIPhasedArrayData
     1393        data_block = abs(tmp_data);
     1394      else
     1395        data_block = sqrt(sum(tmp_data.*conj(tmp_data),5));
     1396      end
    13741397      if ii==1
    1375         data(:,:,:,1:size(tmp_data,4)) = sqrt(sum(tmp_data.*conj(tmp_data),5));
     1398        data(:,:,:,1:size(tmp_data,4),:) = data_block;
    13761399      elseif ii==nBlocks
    1377         tmp_data(:,:,:,1:nRef,:)=[];
    1378         data(:,:,:,((ii-1)*blksz+1+nRef):(nVols+1)) = sqrt(sum(tmp_data.*conj(tmp_data),5));
     1400        data_block(:,:,:,1:nRef,:)=[];
     1401        data(:,:,:,((ii-1)*blksz+1+nRef):(nVols+nRef),:) = data_block;
    13791402      else
    1380         tmp_data(:,:,:,1:nRef,:)=[];
    1381         data(:,:,:,((ii-1)*blksz+1+nRef):(ii*blksz+nRef)) = sqrt(sum(tmp_data.*conj(tmp_data),5));
     1403        data_block(:,:,:,1:nRef,:)=[];
     1404        data(:,:,:,((ii-1)*blksz+1+nRef):(ii*blksz+nRef),:) = data_block;
    13821405      end
    13831406    end
    13841407    fprintf(1,'\n')
    1385    
    1386 %     for kk=1:(size(kspace,3)/nRcv-1)
    1387 %       for ii=1:nRcv
    1388 %         tmp_kspace = l_ReconstructKspace(kspace(:,:,[ii kk*nRcv+ii]),procpar,Dat);
    1389 %         tmp_data(:,:,:,:,ii) = fftshift(fftshift(fft(fft(tmp_kspace,[],1),[],2),1),2);
    1390 %         
    1391 %         %tmp_kspace = l_ReconstructKspace(kspace(:,:,ii:nRcv:end),procpar,Dat);
    1392 %         %kspace2(:,:,:,:,ii)=tmp_kspace;
    1393 %       end
    1394 %       if kk==1
    1395 %         data = sqrt(mean(tmp_data.*conj(tmp_data),5));
    1396 %       else
    1397 %         data(:,:,:,kk+1) = sqrt(mean(tmp_data(:,:,:,2,:).*conj(tmp_data(:,:,:,2,:)),5));
    1398 %       end
    1399 %       fprintf(1,repmat('\b',1,bsl));
    1400 %       fprintf(1,['%0',lnumstr,'d/%0',lnumstr,'d'],kk,nVols);
    1401 %     end
    1402 %     fprintf(1,'\n')
    1403 %     %kspace = kspace2;
    1404 %     %data = fftshift(fftshift(fft(fft(kspace,[],1),[],2),1),2);
    1405 %     %data = sqrt(mean(data.*conj(data),5));
    1406 %     %kspace2=[];
    14071408   
    14081409    % Remove reference image if requested
    14091410    if Dat.isEPIdata && Dat.RemoveEPIphaseIm
    1410       %data = data(:,:,:,2:end);
    1411       data(:,:,:,1:nRef)=[];
     1411      data(:,:,:,1:nRef,:)=[];
    14121412    end
    14131413   
Note: See TracChangeset for help on using the changeset viewer.

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