我按照这个链接的示例进行了操作。然而,轮廓从初始点开始收缩。是否可能做出扩张的轮廓?我想要像图片所示的那样。左边的图片是它的样子,右边的图片是我想要的样子 - 扩张而不是收缩。红色圆圈是起始点,蓝色轮廓是经过n次迭代后的结果。是否有一个参数可以设置 - 我查看了所有参数,但似乎没有设置这个的。此外,当提到“主动轮廓”时,通常是否假定轮廓会收缩?我阅读了这篇论文并认为它既可以收缩也可以扩张。
img = data.astronaut()
img = rgb2gray(img)
s = np.linspace(0, 2*np.pi, 400)
x = 220 + 100*np.cos(s)
y = 100 + 100*np.sin(s)
init = np.array([x, y]).T
if not new_scipy:
print('You are using an old version of scipy. '
'Active contours is implemented for scipy versions '
'0.14.0 and above.')
if new_scipy:
snake = active_contour(gaussian(img, 3),
init, alpha=0.015, beta=10, gamma=0.001)
fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(111)
plt.gray()
ax.imshow(img)
ax.plot(init[:, 0], init[:, 1], '--r', lw=3)
ax.plot(snake[:, 0], snake[:, 1], '-b', lw=3)
ax.set_xticks([]), ax.set_yticks([])
ax.axis([0, img.shape[1], img.shape[0], 0])
max_px_move
设置为 -1,但我不知道那是否有效。 - Stefan van der Walt