基于k-means的图像分割算法研究-含Matlab代码

一、引言

图像是人类互相交流信息的方式之一,而图像跟个是一种重要的图像处理技术。 图像中人们往往只对一部分感兴趣,这就是视觉的目标。为了辨识目标,分析目标,必须把目标从图像中提取出来。图像分割就是把图像分割成具有某些特征的区域并标记出目标的技术。

图像分割算法不计其数,大致可以分成并行边界分割技术、串行边界分割技术、并行区域分割技术、串行区域分割技术和其他结合特定理论工具的分割技术。传统的边缘检测手段包括基于梯度的Sobel、 Prewitt 和 Robbert 算子, Log 算子,Canny 算子, Hough 变换等,都属于并行边界分割技术。 其他图像分割还有很多种方法和种类,很少有具有普适性的方法,针对特殊图像必须具体问题具体分析,开辟新的方法。

二、K-means算法原理

聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类。聚类算法包括分割方法:Kmeans,分层次方法:ROCK、Chemeleon,基于密度的方法:DBSCAN,基于网格的方法:STING、WaveCluster 等。K-means(K均值)算法是基于数据划分的无监督聚类算法,是最经典的机器学习算法之一。

K-means 的 K,指的是将 n 个样本对象划分的簇的个数。划分这些簇的标准是数据点间的相似性准则。 K-means 算法使用的相似性准则是误差平方和(sumof the squared error, SSE)最小化准则。所谓误差平方和最小化,就是该算法能够使聚类域中所有数据点到聚类中心的距离平方最小。设有样本集合 在这里插入图片描述, K-means 聚类算法的目标是将数据集划分为 K 类后,使 K 个子集满足类内的误差平方和最小:

在这里插入图片描述

其中在这里插入图片描述是第i个簇, 在这里插入图片描述是第 i 个簇的平均,即
在这里插入图片描述
求解目标函数 在这里插入图片描述是一个 NP-hard 问题,无法保证得到一个稳定的全局最优解。在Stuart Lloyd 所提出的经典 K-means 聚类算法中,采取迭代优化策略,有效地求解目标函数的局部最优解。算法的四个步骤[1]为:

(1)初始化聚类中心,可选取样本集的前 K 个样本或者随机选取 K 个样本;

(2)分配各样本 在这里插入图片描述到相近的聚类集合,样本分配依据为:

在这里插入图片描述
式中, 在这里插入图片描述
(3)根据步骤 2 的分配结果,更新聚类中心:

在这里插入图片描述
(4)若迭代达到最大迭代步数或者前后两次迭代的差小于设定阈值ε,即在这里插入图片描述,则算法结束;否则重复步骤2。

K-means 算法的步骤2和步骤3分别对样本几何进行重新分配和更新计算聚类中心,通过迭代计算过程优化目标函数 在这里插入图片描述,实现类内误差平方和最小。在样本分配阶段,需要计算 kn 次误差平方和,计算的时间复杂度为 O(knd);在更新聚类中心阶段,计算时间复杂度为 O(nd)。如果迭代次数为t,则算法的时间复杂度为O(kdnt),因此K-means针对样本个数n具有线性的计算复杂度,是一种高效率的聚类算法。

其中:

在这里插入图片描述

三、基于K-means的图像分割验证

对基于K-means的图像分割进行了验证,可以看到K-means对图像的不同区域进行标记和人为分割的还是有一定的相似之处,对图像大部分的区域判定和划分是正确的。对面积较大的区域的边缘,K-means方法检测效果较好,可以作为其他边缘检测方法的辅助手段。

在这里插入图片描述

图1 基于K-means的图像分割结果

四、参考文献

[1] Bradley P S, Fayyad U M. Refining initial points for k-means clustering. Proceedings of the Fifteenth International Conference on Machine Learning. San Francisco, CA:Morgan Kaufmann Publisher. 1998: 91-99

五、Matlab代码获取

上述Matlab代码获取地址:

https://download.csdn.net/download/m0_70745318/88014883


博主简介:研究方向涉及智能图像处理、深度学习、卷积神经网络等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值