利用均值漂移实现图像分割的原理和OpenCV代码
要想大致理解均值漂移实现图像分割的原理请见网页http://www.docin.com/p-631981950.html,网页中对原理的理解已经说得比较清楚。如果你想了解详细原理,可以参考PAMI 2003的一篇文章,非常经典的哦,Mean Shift:A Robust Approach Toward Feature Space Analysis。
算法实施过程为:原点是选定的初始迭代点,将蓝色圆(其半径记为h)内所有向量相加,相加的结果如黄色向量所示,其终点指向上图所示的红色点,则下一次迭代以该红色点为圆心,h为半径画圆,然后求这个圆内以圆心为起点所有向量的和。如此迭代下去,圆的中心点为收敛于一个固定的点,也就是概率密度最大的地方。所以 均值漂移算法本质上是一种基于梯度的优化算法。
OpenCV中提供了函数pyrMeanShiftFiltering()来实现,函数原型如下:
void pyrMeanShiftFiltering( InputArray src, OutputArray dst, double sp, double sr, int maxLevel = 1, TermCriteria termcrit=TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS,5,1) );
还没有评论,来说两句吧...