基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)...

一,k-means 聚类

k-means 聚类算法是一种非常简单实用的图像分割方法。它属于无监督机器学习算法。通常的做法是按照一定的方法度量样本间的相似度,然后通过不断的迭代来更新聚类的中心,当中心不再变动时,说明图像分割完成。具体的方法如下:

1.随机选择K个点作为聚类的中心点(本示例选择的两个点)

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第1张图片

2.计算每个点到两个中心点的距离,并将每个像素点分配给距离其最近的中心点

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第2张图片

3.计算每个族群的均值位置作为新的聚类中心点

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第3张图片

4.重复上述步骤,直到中心点不再变化

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第4张图片

聚类算法的缺点:

1.在算法开始时,随机选择的中心点不同,可能导致最终的结果不同(如下图所示),同样是选择三个中心点,由于开始随机选取的点不同,造成最终结果不同

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第5张图片

2.对于分割区域的大小差异较大的图像,分割效果较差(如下图所示)

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第6张图片

3.对于非球状的图像,分割效果较差(如下图所示)

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第7张图片

二,分层聚类(Hierarchical Clustering)

Hierarchical Clustering 有两种方式,一种叫做agglomerative clustering,这种方法的核心思想为每个像素为认为是一类,通过迭代将最近的两个类别merged到一起形成新的类;另一种方法叫做divisive clustering,这种方法的核心思想为先将整个图像当成一类,然后通过迭代将整个图像逐渐分割成不同的类。Agglomerative clustering 的基本步骤为:

1.将每个像素点当成一类

2.计算距离矩阵,即所有像素点两点之间的距离。假设有A, B, C, D, E 5个点(如下图)

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第8张图片

3.通过迭代,不断的merge距离最近的两个群组,直到最终全部合并成一个群组为止

重点:算法的核心在于计算两个群组的最短距离的方式不同,最终所分成的群组的结果也会不同,常用的计算两个群组的最短距离的方式有如下三种:

single-link clustering: 两群组间的最短距离为群组间的最相邻点的距离

44a88083c86d73260bb4efbbbf61520f.png

complete-link clustering: 两群组间的最短距离为群组间最远点的距离

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第9张图片

group-link clustering: 两群组间的最短距离为群组间所有点的相互距离的平均值。如,两群组分别有m 和 n个元素,则相互间可以计算出 m *n个距离,将这些距离相加再除以m*n 则是他们两个群组的距离

基于像素聚类的分割方法基于slic的方法_基于区域的分割方法二聚类算法(11.3)..._第10张图片

centroid clustering: 两群组间的距离为先求出每个群组内部的平均距离,然后再计算群组间的距离

Reference:

https://blog.csdn.net/M1M1M16/article/details/79415871

你可能感兴趣的:(弗洛伊德算法求出最短距离)