def run(self, ips, snap, img, para = None):
ips.lut = self.buflut
k, unit = ips.unit
lev, ds, step = para['thr'], para['ds'], para['step']
scube = np.cumprod(ips.imgs.shape)[-1] * k**3
sfront = (ips.imgs[::ds,::ds,::ds]>lev).sum() * ds ** 3 * k**3
sback = scube - sfront
print(scube, sfront, sback)
vts, fs, ns, cs = marching_cubes_lewiner(ips.imgs[::ds,::ds,::ds], lev, step_size=step)
area = mesh_surface_area(vts, fs) * (ds**2 * k **2)
rst = [round(i,3) for i in [scube, sfront, sback, sfront/scube, area, area/sfront]]
titles = ['Cube Volume', 'Volume', 'Blank', 'Volume/Cube', 'Surface', 'Volume/Surface']
IPy.table('Volume Measure', [rst], cols=titles)
评论列表
文章目录