private/calculateRoiImageData.m
9b240b57
 function [extr xx yy zz] = calculateRoiImageData(filenameList,roiImageList)
ea58b69a
 
 V = filenameList;
 nImage = numel(V);
 Vm = roiImageList;
 nRoi = numel(Vm);
 
 for kImage=1:nImage
     x = []; y = []; z = [];
     dat = [];
     for iRoiFile = 1:nRoi
         [x1 y1] = ndgrid(1:V(kImage).dim(1),1:V(kImage).dim(2));
         for p = 1:V(kImage).dim(3) % resample mask Vm(i) in space of V(k)
             B = spm_matrix([0 0 -p 0 0 0 1 1 1]);
             M = inv(B*inv(V(kImage).mat)*Vm(iRoiFile).mat);
             msk = find(spm_slice_vol(Vm(iRoiFile),M,V(kImage).dim(1:2),0));
             if ~isempty(msk)
                 z1 = p*ones(size(msk(:)));
                 x = [x; x1(msk(:))];
                 y = [y; y1(msk(:))];
                 z = [z; z1];
             end
         end
         dat = [dat spm_sample_vol(V(kImage), x, y, z,0)];
9b240b57
 
         if kImage == 1 % sample coordinates from first image
             xx = x;
             yy = y;
             zz = z;
         end
 
ea58b69a
     end
     extr(kImage).dat = dat;
 end
 
 end