isodata
的
matlab
代码博客ISO数据
ISODATA
算法的实现旨在将一组给定的图像划分为与特定属性相关联的子集(集群)
聚类首先为所寻找的类设置平均值(类中心),或从现有签名中获取平均值。
在将所有可能的图像分配给集群之一后,重新计算均值(集群中心)。
现在将聚类分类过程中得到的均值作为聚类的中心,从头开始完全重复这个过程(下一次迭代)。
随着每次后续迭代,集群的数量可能会发生变化。
该过程一直持续到达到最大迭代次数(在开始时设置)。
在该程序中,您可以手动设置初始和最终簇数、簇大小、簇中包含的最小图像数和迭代次数。
让我们通过一个例子来考虑程序的结果。
初始簇数为
2,期望数为
4。簇中最小图像数为
3,迭代次数为
20。
例如,让我们形成几个训练样本。
在这些样本中,簇的形状不同(圆形、高度拉长和不规则),大小和彼此之间的距离也不同。
它们如下所示。
此外,该程序还实现了几种指定聚类初始中心的方法:
1.
前几张图像用作中心
2.
图像用作中心,它们之间的距离至少为
3.
图像用作中心,它们之间的距离是最大的
下面是算法的结果,用不同的方法为几个样本指定中心。
簇