opencv Kmeans之图像分割

本文介绍了KMeans算法的基本原理,它是一种非监督学习的硬分类方法,常用于机器学习、数据挖掘等领域。KMeans的工作流程包括初始化分类中心、计算数据点与中心点的距离并重新分配类别、更新中心点等步骤,直至满足停止条件。此外,文章还详细讲解了OpenCV中KMeans函数的API使用,包括参数含义和图像分割的实验应用,展示了如何利用KMeans进行图像区域自动分割。

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

一、话说kmeans

KMeans算法MacQueen在1967年提出的,是最简单与最常见数据分类方法之一并且最为一种常见数据分析技术在机器学习、数据挖掘、模式识别、图像分析等领域都用应用。如果从分类角度看KMeans属于硬分类即需要人为指定分类数目,而MeanSift分类方法则可以根据收敛条件自动决定分类数目。从学习方法上来说KMeans属于非监督学习方法即整个学习过程中不需要人为干预的学习方法,自动完成整个数据集合分类。对于给定的数据集合DS (Data Set)与输入的分类数目K,KMeans的整个工作原理可以描述如下:

  1. 根据输入的分类数目K定义K个分类,每个分类选择一个中心点

  2. 对DS中每个数据点做如下操作

  • 计算它与K个中心点之间的距离

  • 把数据点指定属于K个中心点中距离最近的中心点所属的分类

对K个分类中每个数据点计算平均值得到新的K个中心点

比较新K个中心点之间与第一步中已经存在的K个中心差值

  • 当两者之间的差值没有变化或者小于指定阈值,结束分类

  • 当两者之间的差值或者条件不满足时候,用新计算的中心点值做为K个分类的新中心点,继续执行2~4步。直到条件满足退出。

从数学的角度来说KMeans就是要找到K个分类而且他们的中心点到各个分类中各个数据的之间差值平方和最小化,而实现这个过程就是要通过上述2~4步不断的迭代执行,直到收敛为止。公式表示如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值