基于matlab读取nii体数据并进行表面绘制,计算表面积

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=
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值