主动轮廓模型。
通过将snake拟合到图像特征来激活轮廓。 支持单通道和多通道2D图像。 snake可以是周期性的(用于分割)或具有固定和/或自由端。 输出snake与输入边界的长度相同。 由于点的数量不变,请确保初始snake具有足够的点来捕获最终轮廓的细节。
skimage.segmentation.active_contour(image, snake, alpha=0.01, beta=0.1, w_line=0, w_edge=1,
gamma=0.01, bc='periodic', max_px_move=1.0, max_iterations=2500, convergence=0.1)
参数:
image:(N,M)或(N,M,3)ndarray 输入图像。
snake:(N,2)ndarray 初始snake坐标。对于周期性边界条件,不得复制端点。
alpha:float,可选,snake长度参数。值越高,蛇的收缩速度越快。
beta:浮动,可选, snake平滑形状参数。较高的值使蛇更平滑。
w_line:float,可选,控制对亮度的吸引力。使用负值吸引黑暗区域。
w_edge:float,可选,控制对边缘的吸引力。使用负值可以从边缘排斥snake。
gamma:float,可选,显式时间步进参数。
bc:{‘periodic’,‘free’,‘fixed’},可选,蠕虫的边界条件。 'periodic’连接snake的两端,'fixed’将端点固定到位,'free’允许端部自由移动。 ‘fixed’和’free’可以通过解析’fixed-free’,'free-fixed’来组合。解析“固定固定”或“免费”分别产生与“固定”和“免费”相同的行为。
Returns: snake,(N,2)ndarray,与输入参数相同的形状。
活动轮廓模型是一种将开放或闭合样条拟合到图像中的线或边的方法。 它的工作原理是最小化部分由图像定义的能量,部分由样条的形状:长度和平滑度。 最小化在形状能量中隐含地完成并且明确地在图像能量中完成。
在以下两个示例中,使用活动轮廓模型(1)通过将闭合曲线拟合到面的边缘来从图像的其余部分分割人的面部,以及(2)找到两个固定之间的最暗曲线。 在遵守平滑性考虑的同时提出要点。 通常,在分析之前平滑图像是个好主意,如以下示例中所做的那样。
我们围绕宇航员的脸部初始化一个圆圈,并使用默认边界条件bc ='periodic’来拟合闭合曲线。 默认参数w_line = 0,w_edge = 1将使曲线搜索到边缘,例如面的边界。
import numpy as np
import matplotlib.pyplot as plt
from skimage.color import rgb2gray
from skimage import data
from skimage.filters import gaussian
fro