将K-means算法应用到图像分割的一个尝试

本文探讨了如何使用K-means算法进行图像分割。介绍了K-means算法的定义、步骤,并通过Matlab示例展示了算法在图像分割中的应用。尽管存在初始种子点选择和分割效果等问题,但K-means仍然是图像处理领域的一种实用工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近我一直在研究图像分割,目标提取的算法,由于背景目标的复杂而且噪点很多,所以我一直更换尝试各种算法以达到最好的效果。如果大家有什么经验传递的话,烦请在评论里面留言,感谢。

说回正题吧。为什么要用k-means算法呢?因为我想学习一下机器学习(*^__^*) ,曾经的机器学习我没有好好听课现在后悔了(ㄒoㄒ)//

 

1 K-means算法

1.1 定义和概述

k-means算法是一种得到最广泛使用的基于划分的聚类算法,把n个对象分为k个簇,以使簇内具有较高的相似度。相似度的计算根据一个簇中对象的平均值来进行。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到数据中自然聚类的中心。

算法首先随机地选择k个对象,每个对象初始地代表了一个簇的平均值或中心。对剩余的每个对象根据其与各个簇中心的距离,将它赋给最近的簇,然后重新计算每个簇的平均值。这个过程不断重复,直到准则函数收敛。


它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。假设有k个群组Si, i=1,2,...,k。μi是群组Si内所有元素xj的重心,或叫中心点。


1.2 算法的步骤

1.2.1 文字性的步骤

输入:簇的数目k;包含n个对象的数据集D。

输出:k个簇的集合。

方法:

1)        从D中任意选择k个对象作为初始簇中心;

2)        repeat;

3)        根据簇中对象的均值,将每个对象指派到最相似的簇;

4)        更新簇均值,即计算每个簇中对象的均值;

5)        计算准则函数;

6)        until准则函数不再发生变化

 

1.2.2 数学一点的步骤

给定初始的包含k个中心点{ m1,…,mk }的初值。这个过程通常是针对具体的问题有一些启发式的选取方法,或者大多数情况下采用随机选取的办法。因为前面说过 k-means 并不能保证全局最优,而是否能收敛到全局最优解其实和初值的选取有很大的关系,所以有时候我们会多次选取

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值