dataHeader=spm_vol_nifti('fileName.nii');%利用spm的函数,读取nii格式数据
data=spm_read_vols(dataHeader);
surfaceData=isosurface(smooth3(data),0);%首先对读取的数据进行平滑处理,然后提取等值面,的到了表面三角面片有关的一系列数据
%得到的surfaceData为一个结构体数据,包含两个变量 ,分别是存储三角面片各个定点空间坐标的vertices以及存储每个三角面片信息的faces
totalSquare=0;%定义体表面积变量
for i=1:size(surfaceData.faces,1)%利用海伦公式计算
a=surfaceData.vertices(surfaceData.faces(i,1),:);
b=surfaceData.vertices(surfaceData.faces(i,2),:);
c=surfaceData.vertices(surfaceData.faces(i,3),:);
ab=sqrt((a(1)-b(1))^2+(a(2)-b(2))^2+(a(3)-b(3))^2);
ac=sqrt((a(1)-c(1))^2+(a(2)-c(2))^2+(a(3)-c(3))^2);
bc=sqrt((c(1)-b(1))^2+(c(2)-b(2))^2+(c(3)-b(3))^2);
p=(ab+ac+bc)/2;
totalSquare=totalSquare+sqrt(p*(p-ab)*(p-bc)*(p-ac));
end
aaa=