我正在尝试使用分水岭算法对3D断层图像进行分段。
以下是我的代码(a
是我要分割的断层图):
D = ndimage.distance_transform_edt(a)
localMax = feature.peak_local_max(D, indices=False, min_distance=30,
labels=a,threshold_abs=6,exclude_border=1)
localMax2 = feature.peak_local_max(D, indices=True, min_distance=30,
labels=a,threshold_abs=6,exclude_border=1)
markers = ndimage.label(localMax, structure=np.ones((3,3,3)))[0]
labels = morphology.watershed(-D,markers,mask=a)
问题在于该算法对区域进行了分割,请参见图片(左侧为原始断层图,带有种子点(红色点)的中间欧几里得距离图,右侧为分割的图像)。如果我使用较少的种子点,则无法获得所有区域。有没有合并相邻区域的方法?