如何使 skimage 的活动轮廓被推到角落

How to make skimage´s active contour get pushed into the corners

我基本上使用的是 skimage 的 tutorial on morphological_geodesic_active_contour from their website。 我对已经得到的结果非常满意,但我更喜欢轮廓甚至被拉(或推)到圆的边缘的结果。

如果你想复制我创建的圈子,这里是代码(其余代码来自上面链接的网站):

im = np.zeros((100, 100))
for i in range(100):
    for j in range(100):
        if (i - 50) ** 2 + (j - 50) ** 2 <= 400:
            im[i, j] = 1.0
im[50:80, 50:80] = 0.0

我很感激任何帮助!

编辑:作为变形 GAC 的参数,我使用了以下内容:

morphological_geodesic_active_contour(gimage, 50, init_ls,
                                      smoothing=1, balloon=-1,
                                      threshold=.9,
                                      iter_callback=callback)

事实证明,在 运行 实际算法之前执行的步骤 gimage = inverse_gaussian_gradient(im) 有一个参数 sigma 控制应用的平滑。默认情况下,这是 sigma=5,但将其更改为 sigma=0.7 可以让 GAC 算法更好地进入角落。

详情见图片