heavy CrossVal Toolbox deve...
Christoph Budziszewski authored 15 years ago
|
computeCoordinates.m 1) function coordinateStruct = computeCoordinates(imageStruct)
computeCoordinates.m 2) %imageStruct.(someName).images
computeCoordinates.m 3) %imageStruct.(someName).roiImages
computeCoordinates.m 4) coordinateStruct = struct;
computeCoordinates.m 5)
computeCoordinates.m 6) subjectCellList = fieldnames(imageStruct);
computeCoordinates.m 7)
computeCoordinates.m 8) for subject = 1:length(subjectCellList)
computeCoordinates.m 9) subjectFieldName = cell2mat(subjectCellList(subject));
computeCoordinates.m 10) % ROI Image Coordinates
computeCoordinates.m 11) V = imageStruct.(subjectFieldName).images;
computeCoordinates.m 12) Vm = imageStruct.(subjectFieldName).roiImages;
computeCoordinates.m 13) coordinateStruct.(subjectFieldName) = ...
computeCoordinates.m 14) computeRoiImageCoordinates(V,Vm);
computeCoordinates.m 15) % Parsed Voxel Definitions
computeCoordinates.m 16) coordinateStruct.(subjectFieldName) = ...
computeCoordinates.m 17) appendManualVoxelCoordinates(coordinateStruct.(subjectFieldName),V);
computeCoordinates.m 18)
computeCoordinates.m 19) end
computeCoordinates.m 20) end
computeCoordinates.m 21)
computeCoordinates.m 22) function coordinates = appendManualVoxelCoordinates(coordinateStruct,V)
computeCoordinates.m 23) coordinates =coordinateStruct;
computeCoordinates.m 24) end
computeCoordinates.m 25)
computeCoordinates.m 26) function coordinates = computeRoiImageCoordinates(V,Vm)
computeCoordinates.m 27) nVolImage = length(V);
computeCoordinates.m 28) nRoiImage = length(Vm);
computeCoordinates.m 29)
computeCoordinates.m 30) coordinates = cell(nVolImage,1);
computeCoordinates.m 31)
computeCoordinates.m 32) for iVolImage = 1:nVolImage
computeCoordinates.m 33) coordinates{iVolImage} = [];
computeCoordinates.m 34) for jRoiImage = 1:nRoiImage
|
possibly working version, c...
Christoph Budziszewski authored 15 years ago
|
computeCoordinates.m 35) [x,y,z] = computeCoordinateVector(V(iVolImage),Vm(jRoiImage));
computeCoordinates.m 36) coordinates{iVolImage} = [coordinates{iVolImage}; x, y, z];
computeCoordinates.m 37) end
computeCoordinates.m 38) end
computeCoordinates.m 39) end
computeCoordinates.m 40)
computeCoordinates.m 41) function [x,y,z] = computeCoordinateVector(VolumeImage,RoiImage)
|
heavy CrossVal Toolbox deve...
Christoph Budziszewski authored 15 years ago
|
computeCoordinates.m 42) x = []; y = []; z = [];
|
possibly working version, c...
Christoph Budziszewski authored 15 years ago
|
computeCoordinates.m 43) [x1 y1] = ndgrid(1:VolumeImage.dim(1),1:VolumeImage.dim(2));
computeCoordinates.m 44) for p = 1:VolumeImage.dim(3) % resample mask RoiImage in space of VolumeImage
|
heavy CrossVal Toolbox deve...
Christoph Budziszewski authored 15 years ago
|
computeCoordinates.m 45) B = spm_matrix([0 0 -p 0 0 0 1 1 1]);
|
possibly working version, c...
Christoph Budziszewski authored 15 years ago
|
computeCoordinates.m 46) M = inv(B*inv(VolumeImage.mat)*RoiImage.mat);
computeCoordinates.m 47) msk = find(spm_slice_vol(RoiImage,M,VolumeImage.dim(1:2),0));
|
heavy CrossVal Toolbox deve...
Christoph Budziszewski authored 15 years ago
|
computeCoordinates.m 48) if ~isempty(msk)
computeCoordinates.m 49) z1 = p*ones(size(msk(:)));
computeCoordinates.m 50) x = [x; x1(msk(:))];
computeCoordinates.m 51) y = [y; y1(msk(:))];
computeCoordinates.m 52) z = [z; z1];
computeCoordinates.m 53) end;
computeCoordinates.m 54) end;
|