本文主要是介绍mean shift算法的个人理解,请大家指教,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
mean shift算法的个人理解,请大家指教
最近看了下mean shift算法,以下图为例直观地说下对这种优雅的算法的理解吧,并且大家指教。
下图是一些散步的数据点,由于mean shift是一种robust算法(公式见图2)。所以,在图1中初始窗口的位置对最终的结果并没有影响。
step1: 选择任意一个窗口,窗口中心是红色点所在位置,窗口大小自己设定。
step2: 根据落入窗口里的数据点来计算mean shift公式的前部分,这里其值设为y(i + 1)。
step3: y(i + 1)与窗口中心y(i)相比较,并设定一个阈值T(T值很小),如果|y(i + 1) - y(i)| > T,则更新窗口中心(y(i) = y(i + 1))。返回step2,否则进入step4.
step4: 结束循环。
实际在聚类的过程中,我可以把收敛到同一点的这些都标记相同的值(收敛到不同的点具有不同的标记),那么最终我就能得到一个聚类的图像。
这也就是在图像分割中mean shift算法的原理,我是这样理解的。
如果有不对劲的地方,或者原理的错误的地方,请大家一起毫不留情地指出啊!!!:tuzi9:
、
下图是一些散步的数据点,由于mean shift是一种robust算法(公式见图2)。所以,在图1中初始窗口的位置对最终的结果并没有影响。
step1: 选择任意一个窗口,窗口中心是红色点所在位置,窗口大小自己设定。
step2: 根据落入窗口里的数据点来计算mean shift公式的前部分,这里其值设为y(i + 1)。
step3: y(i + 1)与窗口中心y(i)相比较,并设定一个阈值T(T值很小),如果|y(i + 1) - y(i)| > T,则更新窗口中心(y(i) = y(i + 1))。返回step2,否则进入step4.
step4: 结束循环。
实际在聚类的过程中,我可以把收敛到同一点的这些都标记相同的值(收敛到不同的点具有不同的标记),那么最终我就能得到一个聚类的图像。
这也就是在图像分割中mean shift算法的原理,我是这样理解的。
如果有不对劲的地方,或者原理的错误的地方,请大家一起毫不留情地指出啊!!!:tuzi9:
、
这篇关于mean shift算法的个人理解,请大家指教的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!