基于K-means-的图像分割_第1页
基于K-means-的图像分割_第2页
基于K-means-的图像分割_第3页
基于K-means-的图像分割_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于K-means 的图像分割一、实验目的(1)通过K-means聚类实现图像分割,在实验板上观察实验效果。(2)掌握VisualDSP+5.0的使用。二、实验环境(1)软件:WindowsXp、VisualDSP+5.0(2)硬件:仿真器、EBF-561实验平台三、算法描述图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。近年来,图像分割在实际工程中已经得到了广泛应用。本次实验主要用到的分割算法为K-means算法。K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相

2、似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。其原理为:先取k个初始距离中心。计算每个样品到这k个中心的距离,找出最小距离把样品归入最近的聚类中心,修改中心点的值为本类所有样品的均值,再计算各个样品到k个中心的距离,重新归类、修改新的中心点,直到新的距离中心等于上一次的中心点时结束。此算法的结果受到聚类中心的个数以及初始聚类中心的选择影响,也受到样品几何性质及排列次序影响。如果样品的几何特性表明他们能形成几个相距较远的小块孤立区域,则算法多能收敛。根据原理,可定义准则函数为:算法原理可以解释如下:四、算法步骤输入:k,datan(1) 选择k 个初始中

3、心点,例如c0 = data0, ,ck-1=datak-1;(2) 对于data0,datan,分别与c0,ck-1比较,假设ci差值最少,就标记为i;(3) 对于所有标记为i 点,重新计算ci=所有标记为i 的dataiz 之和/标记为i 的个数;(4) 重复(2)(3),直至所有cj值的变化小于给定阈值。五、实现结果 按照下列步骤,程序正确运行,得到正确的分割结果。(1)上机完善图像分割k-means算法程序;(2)搭建实验硬件环境;(3)打开VisualDSP+集成开发环境,建立Session状态;(4)打开并运行工程;(5)调试程序;(6)在实验板上检查分割效果。六、算法阐述 K-m

4、eans算法是一种得到最广泛使用的基于划分的聚类算法,把n个对象分为k个簇,以使簇内具有较高的相似度。相似度的计算根据一个簇中对象的平均值来进行。这样的特性就导致了算法对初始值敏感,对于不同的初始值,可能会导致不同的聚类结果,而且对于“噪声”和孤立数据敏感,少量的该类数据能够对平均值产生极大影响,针对这些问题,可以通过数据预处理、优化初始聚类中心选择、改良迭代过程中聚类中心的选择来改进算法。七、主要程序及解释要求:bmpimage.imgbuf为图像数据首地址,指针类型;图像宽度变量为head.biWidth,高度为head.biHeight

5、;分割结果(不同区域标识对应的灰度值)要求仍然存储在bmpimage.imgbuf为首地址的区域。int k,j;int size; /存储图片灰度数据的个数int sum1,sum2;/两类总灰度值大小总和int count1,count2;/两类总样本的个数unsigned char c3; unsigned char *data;data= bmpimage.imgbuf;c1 = data1;/初始化两类聚类中心,分别去第1个和第1000个数据点的灰度值c2 = data1000;size = head.biWidth * head.

6、biHeight;int labelN;/存储各个样本点的类别for(j=0;j30;j+) /迭代30次 sum1 = 0;/初始化变量 sum2 = 0; count1 = 0; count2 = 0; for(k = 0;k =(pow(datak-c2),2)/判断各个样本到聚类中心的距离,哪个近,就分到哪一类 labelk = 2;/第2类,样本综合更新,个数更新sum2 = sum2 + datak;count2+; else labelk = 1; sum1 = sum1 + datak; count1+; c1 = sum1 / count1;/更新聚类中心 c2 = sum2 / count2;for(k=0; k size - 1; k+)/为了让其差别更明显,两类分别取灰度值0,255,便于检查聚类效果 if (labelk = 1) datak = 0; else datak = 255;八、实验总结在刚开始编程的时候走了一些弯路,主要是因为对算法原理理解的不够透彻,后来,在老师和同学的帮助下,理清了编程的思路,顺利的编写完算法,并且

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论