我想用python对3D CT体积进行腐蚀。我已经尝试过腐蚀功能舞会SciPy和Scikit-image,但是它们似乎工作不正常(都没有膨胀)。这是我尝试过的:
import numpy as np
from scipy import ndimage
from skimage import morphology
np_image_data = sitk.GetArrayFromImage(imageData) #Numpy array with CT data
boneMask = np_image_data>=1000
struct = ndimage.generate_binary_structure(3, 1)
# Scipy erosion
erodedMask1 = ndimage.binary_erosion(boneMask.astype(uint), structure=struct, iterations=1)
# Scikit-image erosion
erodedMask2 = morphology.binary_erosion(boneMask.astype(uint), struct)
它们两个都几乎侵蚀了整个图像(只剩下一些体素)。有什么建议吗?我从SimpleITK尝试了BinaryErodeImageFilter,但是它很慢并且占用大量内存。
谢谢大家!
SimpleITK具有用于所有形态操作的过滤器。它们快速且易于使用。
https://simpleitk.readthedocs.io/en/master/Documentation/docs/source/filters.html