1987年由 Kass 等人提出的主动轮廓模型即蛇模型(snake 模型)
M. Kass, A.P. Witkin, D. Terzopoulos. Snakes: Active Contour Models.International Journal of Computer Vision.1987, 1(4): 321~331.
该方程:基于能量泛函法。
曲线几何特征:方向-单位法向量;弯曲程度-曲率;曲率:单位弧段上切线转过的角度。角度逼上弧度去极限值。
曲线演化:曲线都存在曲率,也就存在着法向曲率力(曲率的二阶导数),会在法向曲率力下退化为圆,圆的法向曲率力指向圆心,因此最终状态是曲线消散。
在曲率演化的时候正负之分:向内为负,向外为正。
Snakes模型构建:C(s)=[X(s),Y(s)],具体的定义为一组点[X,Y],自变量为s—傅里叶变形体。
Snakes能量泛函为:
第一项为轮廓C的弹性能量,第二项为轮廓C的弯曲能量=====这两项统称为内能。前者使轮廓不易被拉伸,后者使其不易弯曲 。两者的目的是使轮廓C的一阶导数和二阶导数曲线积分最小。这两项在一些论文中作为正则项出现,最终使轮廓为光滑连续曲线。仅和Snakes轮廓有关,和图像无关。其中系数α和β与轮廓伸展和弯曲程度有关。
第三项为外部能量。它的目的是使曲线收敛于目标边缘。F(C(s))为关于待分割图像u0梯度递减的函数:
通过求解能量E最小,进而实现区域划分。其中第一项弹性能量—轮廓压缩成圆;第二项弯曲能量—轮廓成光滑曲线;第三项图像力—轮廓向图像高梯度靠拢。
Snakes模型通过曲线轮廓和图像匹配的结合得到较好的结果。
当然这样说大家理解起来比较模棱两可,咱们上升到程序层面:
我们要想理解一个程序或者一个方程时,我们就需要先要了解它的输入和输出是什么
程序输入为:我们自己画的一个框的每一个坐标点;图像沿横轴的梯度和沿纵轴的梯度(梯度在图像中多用差分来表示,例如:横向的梯度为第二列矩阵与第一列与第三列的差值除以2,以此类推。);原始图像。我们的输入也就是这些。
变化坐标为x2=alpha*(|x1-x2|+|x3-x2|)/2+gamma*该点沿x方向的差分,同理y也是这样的。(这块要是前一个点和后一个点到中间点距离相等,那么就变到了中间点)
最后x,y的每点坐标就是这样变化的,一个不太像snakes的方法,可是基本原理是相近的。
程序输出为:新的坐标(x,y)来画图进而把图像框起来。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37757.html