activecontour
使用主动轮廓 (snake) 区域增长方法将图像分割成前景和背景
语法
说明
主动轮廓方法,也称为 snake,是一种迭代式区域增长图像分割算法。使用主动轮廓算法,您可以在图像上指定初始曲线,然后使用 activecontour
函数使曲线向对象边界演化。
示例
输入参数
输出参数
提示
activecontour
使用mask
中区域的边界作为演化开始时轮廓的初始状态。掩膜上的孔洞可能会导致不可预测的结果。请使用imfill
填充mask
区域中的孔洞。如果某个区域触及图像边界,则
activecontour
在进一步处理之前,会从该区域中删除单像素层,以便该区域不会触及图像边界。要获得更快、更准确的结果,请指定靠近所需对象边界的初始轮廓位置,特别是对于
"edge"
方法。对于
"edge"
方法,主动轮廓会自然内缩(收缩)。在没有任何图像梯度的情况下,主动轮廓会自行收缩。相反,在"Chan-Vese"
方法中,轮廓是无偏差的,轮廓可以根据图像特征自由收缩或扩展。要使用
"edge"
方法实现精确分割,请指定位于对象边界之外的初始轮廓。默认情况下,使用"edge"
方法的主动轮廓会偏向收缩。如果对象区域具有明显不同的灰度强度,则
"Chan-Vese"
方法 [1] 可能不会分割图像中的所有对象。例如,如果图像同时包含比背景亮的对象和比背景暗的对象,"Chan-Vese"
方法通常只会分割出暗的对象或分割出亮的对象。
算法
activecontour
使用稀疏场水平集方法(类似于 [3] 中所述的方法)来实现主动轮廓演化。
参考
[1] T. F. Chan, L. A. Vese, Active contours without edges. IEEE Transactions on Image Processing, Volume 10, Issue 2, pp. 266-277, 2001.
[2] V. Caselles, R. Kimmel, G. Sapiro, Geodesic active contours. International Journal of Computer Vision, Volume 22, Issue 1, pp. 61-79, 1997.
[3] R. T. Whitaker, A level-set approach to 3d reconstruction from range data. International Journal of Computer Vision, Volume 29, Issue 3, pp. 203-231, 1998.
版本历史记录
在 R2013a 中推出