![6dba8ed54e3dcaa4210d352ea4574695.png](https://i-blog.csdnimg.cn/blog_migrate/2da68b56d3782f7052676849d1cfde26.jpeg)
三维医学图像分割中,经常需要查看下分割结果,一种方法是保存下来,用专门的看图软件打开,比如ITK-SNAP,这样的弊端是太麻烦。
如何在IDE里直接显示分割结果呢?
用下面这个包就可以,是ImagePy作者开放的,非常轻量级,速度也很快。
https://github.com/Image-Py/myvigithub.com使用方法如下:
- 下载数据和代码
跟原始代码相比,笔者fork的代码增加了spacing参数
2. 运行下面的代码(比如spyder)
"""
Created on Fri Mar 20 11:17:17 2020
@author: MA
"""
import nibabel as nib
from myvi import myvi
import numpy as np
import scipy.ndimage as ndimg
# get img data and spacing
nii = nib.load(r'path todataorgan.nii.gz')
imgs = nii.get_data()
zoom = nii.header.get_zooms()
# smooth (may loss details)
organ_1 = ndimg.gaussian_filter(np.float32(imgs==1), 1)
organ_2 = ndimg.gaussian_filter(np.float32(imgs==2), 1)
organ_3 = ndimg.gaussian_filter(np.float32(imgs==6), 1)
# vts, fs, ns, cs是节点,表面,法向量,颜色
vts, fs, ns, vs = myvi.util.build_surf3d(organ_1, 1, 0.5, zoom)
vts2, fs2, ns2, vs2 = myvi.util.build_surf3d(organ_2, 1, 0.5, zoom)
vts3, fs3, ns3, vs3 = myvi.util.build_surf3d(organ_3, 1, 0.5, zoom)
manager = myvi.Manager()
manager.add_surf('spleen', vts, fs, ns, (1,0,0))
manager.add_surf('pancreas', vts2, fs2, ns2, (0,1,0))
manager.add_surf('liver', vts3, fs3, ns3, (0,0,1))
manager.show('Organ 3D Demo')
显示结果如下
![9abcf7e2f9ab2a21ba78ed0a752b1aaf.png](https://i-blog.csdnimg.cn/blog_migrate/7d946f1da68f82d97ce309bf1be12536.png)