在前面分享的医学图像处理案例中,给出了很多具体案例,但有些读者还是渴望可以深入分享案例代码详解。那么今天我将从骨骼分割,气管分割,肺组织分割,血管分割这四个具体案例来详细讲解如何来实现。
1、骨骼分割代码详解 1.1、采用固定阈值分割,一般骨骼的HU值在300以上,但是发现心脏和主动脉的HU值与一些骨骼的HU比较接近,所以我们设置固定阈值为100,把骨骼和心脏及主动脉都分割出来。
def skeletonSegment(pathDicom): sitk_src = dicomseriesReader(pathDicom) # 1 sitk_seg = BinaryThreshold(sitk_src, lowervalue=100, uppervalue=3000) sitk.WriteImage(sitk_seg, 'step1.mha') # 2 sitk_open = MorphologicalOperation(sitk_seg, kernelsize=2, name='open') sitk_open = GetLargestConnectedCompont(sitk_open) sitk.WriteImage(sitk_open, 'step2.mha') # 3 array_open = sitk.GetArrayFromImage(sitk_open) array_seg = sitk.GetArrayFromImage(sitk_seg) array_mask = array_seg - array_open sitk_mask = sitk.GetImageFromArray(array_mask) sitk_mask.SetDirection(sitk_seg.GetDirection()) sitk_mask.SetSpacing(sit