1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- function [R] = spm_resels(FWHM,L,SPACE)
- % Returns the RESEL counts of a search volume
- % FORMAT [R] = spm_resels(FWHM,L,SPACE)
- % FWHM - smoothness of the component fields {FWHM - voxels}
- % L - space definition {in voxels}
- % L = radius {Sphere}
- % L = [height width length] {Box}
- % L = XYZ pointlist {Discrete voxels}
- % L = Mapped image volume {Image}
- % SPACE - Search space
- % 'S' - Sphere
- % 'B' - Box
- % 'V' - Discrete voxels
- % 'I' - Image VOI
- %
- % R - RESEL counts {adimensional}
- %
- %__________________________________________________________________________
- % For one or two dimensional spaces the appropriate manifold is
- % used (e.g. sphere -> disc -> line).
- %
- % Reference : Worsley KJ et al 1996, Hum Brain Mapp. 4:58-73
- %
- %__________________________________________________________________________
- % Copyright (C) 2008 Wellcome Trust Centre for Neuroimaging
- % Karl Friston & Matthew Brett
- % $Id: spm_resels.m 3899 2010-05-25 15:36:40Z guillaume $
- % Dimensionality
- %--------------------------------------------------------------------------
- switch SPACE
- case 'S' % Sphere
- %----------------------------------------------------------------------
- s = L(:)./FWHM(:);
- s = s(s > 0);
- if length(s) == 2, SPACE = 'D'; end
- if length(s) == 1, SPACE = 'L'; end
- case 'B' % Box
- %----------------------------------------------------------------------
- s = L(:)./FWHM(:);
- s = s(s > 0);
- if length(s) == 2, SPACE = 'R'; end
- if length(s) == 1, SPACE = 'L'; end
- end
- % Default {sphere - assuming L = volume i.e. number of voxels)
- %--------------------------------------------------------------------------
- if nargin < 3
- SPACE = 'S';
- L = (L*(3/4)/pi)^(1/3);
- end
- % RESEL Counts (R)
- %==========================================================================
- switch SPACE
- case 'S' % Sphere
- %----------------------------------------------------------------------
- s = prod(s).^(1/3);
- R = [1 4*s 2*pi*s^2 (4/3)*pi*s^3];
- case 'D' % Disc
- %----------------------------------------------------------------------
- s = prod(s).^(1/2);
- R = [1 pi*s pi*s^2 0];
- case 'B' % Box
- %----------------------------------------------------------------------
- R = [1 sum(s) (s(1)*s(2) + s(2)*s(3) + s(1)*s(3)) prod(s)];
- case 'R' % Rectangle
- %----------------------------------------------------------------------
- R = [1 sum(s) prod(s) 0];
- case 'L' % Line
- %----------------------------------------------------------------------
- R = [1 s 0 0];
- case 'V' % Voxels
- %----------------------------------------------------------------------
- %R = spm_Pec_resels(L,FWHM);
- V = zeros(max(L,[],2)');
- LL = mat2cell(L,ones(1,size(L,1)),size(L,2));
- V(sub2ind(size(V),LL{:})) = 1;
- R = spm_resels_vol(V,FWHM)';
- case 'I' % Image
- %----------------------------------------------------------------------
- R = spm_resels_vol(L,FWHM)';
- end
|