图像基本变换---KMeans聚类算法

本文详细介绍了K-Means聚类算法的原理和实现过程,特别是在图像处理中的应用。通过该算法,可以将图像数据按照相似性进行分类,形成不同的聚类。算法包括初始化聚类中心、迭代分配像素、更新聚类中心等步骤,直至聚类中心不再改变,最终完成图像的分类处理。
摘要由CSDN通过智能技术生成

本文将详细介绍K-Means均值聚类的算法及实现。

   聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程。K均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要的聚类数目k,k由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中。

  算法过程:

  1,初始化聚类数目K,并任意选择K个初始化均值ui。

  2,迭代图像中每个像素f(x,y),判断其距离哪一个聚类均值最近,即|f(x,y)-ui|最小,则将该像素划分归属为对应的聚类i。

  3,完成一次迭代后,计算每一个聚类的新的均值ui,均值公式不在重复。

  4,重复步骤2-3,直到相邻两次迭代中每一个聚类的ui不在发生变化,则迭代结束。

  5,得到最后的分类结果。

   注:本文代码中采用的是对灰度图像进行 KMeans 聚类,然后还原彩色信息。
   下面 我们给出一份Win8 C#代码,另附一份Winform C#代码DEMO,在文章末尾链接 中。
  1. ///   
  2.         /// KMeans Cluster process.  
  3.         ///   
  4.         /// The source image.  
  5.         /// Cluster threshould, from 2 to 255.  
  6.         ///   
  7.         public static WriteableBitmap KMeansCluster(WriteableBitmap src,int k)KMeansCluster  
  8.         {  
  9.             if (src != null)  
  10.             {  
  11.                 int w = src.PixelWidth;  
  12.                 int h = src.PixelHeight;  
  13.                 WriteableBitmap dstImage = new WriteableBitmap(w, h);  
  14.                 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值