K均值聚类法Word格式文档下载.docx
《K均值聚类法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《K均值聚类法Word格式文档下载.docx(8页珍藏版)》请在冰豆网上搜索。
基于前人的研究方法和研究成果,将k均值聚类算法应用到图像的二值化处理过程中能够得到效果较好的二值图像。
二、K均值聚类
(一)简介
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。
K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。
算法采用误差平方和准则函数作为聚类准则函数。
K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。
该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。
k个初始类聚类中心点的选取对聚类结果具有较大的影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一个簇。
该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离将每个对象重新赋给最近的簇。
当考察完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。
如果在一次迭代前后,J的值没有发生变化,说明算法已经收敛。
(二)算法过程
1.从N个文档随机选取K个文档作为质心
2.对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类
3.重新计算已经得到的各个类的质心
4.迭代2~3步直至新的质心与原质心相等或小于指定阈值,算法结束
具体如下:
输入:
k,data[n];
1)选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1];
2)对于data[0]….data[n],分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i;
3)对于所有标记为i点,重新计算c[i]={所有标记为i的data[j]之和}/标记为i的个数;
4)重复
(2)(3),直到所有c[i]值的变化小于给定阈值。
(三)工作原理
K-MEANS算法的工作原理及流程
K-MEANS算法
聚类个数k,以及包含n个数据对象的数据库。
输出:
满足方差最小标准的k个聚类。
(四)处理流程
从n个数据对象任意选择k个对象作为初始聚类中心;
根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;
并根据最小距离重新对相应对象进行划分;
重新计算每个(有变化)聚类的均值(中心对象)
循环
(2)到(3)直到每个聚类不再发生变化为止
k-means算法接受输入量k;
然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:
同一聚类中的对象相似度较高;
而不同聚类中的对象相似度较小。
聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
说明如下:
首先从n个数据对象任意选择k个对象作为初始聚类中心;
而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;
然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);
不断重复这一过程直到标准测度函数开始收敛为止。
一般都采用均方差作为标准测度函数。
k个聚类具有以下特点:
各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
(五)算法优点
1.算法快速、简单;
2.对大数据集有较高的效率并且是可伸缩性的;
3.时间复杂度近于线性,而且适合挖掘大规模数据集。
K-Means聚类算法的时间复杂度是O(nkt),其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数
三、图像二值化
图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。
将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。
在数字图像处理中,二值图像占有非常重要的地位,首先,图像的二值化有利于图像的进一步处理,使图像变得简单,而且数据量减小,能凸显出感兴趣的目标的轮廓。
其次,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像。
四、基于k-均值聚类的快速图像二值化算法
基于k-均值聚类的快速图像二值化算法基于这样一个假设:
具有某一灰度值的像素个数最多的那个灰度值,或者是前景类的灰度中心点,或者是背景类的灰度中心点。
从实验数据来看,该假设对于绝大部分的自然图像都是成立的。
因此使用较少的迭代次数就能够获得较好的图片分割效果,即使在最坏情况下,对于灰度等级为256的灰度图像来说也只需迭代256次就能找出整幅图像的最佳分割点。
五、程序
clc
clear
tic
RGB=imread('
text1.jpg'
);
%读入像
img=rgb2gray(RGB);
[m,n]=size(img);
GZ=zeros(1,256);
fori=1:
m
forj=1:
n
GZ(RGB(i,j)+1)=GZ(RGB(i,j)+1)+1;
end
end
subplot(2,2,1),imshow(img);
title('
图一原图像'
)
subplot(2,2,2),imhist(img);
图二原图像的灰度直方图'
holdoff;
img=double(img);
200
c1
(1)=25;
c2
(1)=125;
c3
(1)=200;
%选择三个初始聚类中心
r=abs(img-c1(i));
g=abs(img-c2(i));
b=abs(img-c3(i));
%计算各像素灰度与聚类中心的距离
r_g=r-g;
g_b=g-b;
r_b=r-b;
n_r=find(r_g<
=0&
r_b<
=0);
%寻找最小的聚类中心
n_g=find(r_g>
0&
g_b<
%寻找中间的一个聚类中心
n_b=find(g_b>
r_b>
0);
%寻找最大的聚类中心
i=i+1;
c1(i)=sum(img(n_r))/length(n_r);
%将所有低灰度求和取平均,作为下一个低灰度中心
c2(i)=sum(img(n_g))/length(n_g);
%将所有低灰度求和取平均,作为下一个中间灰度中心
c3(i)=sum(img(n_b))/length(n_b);
%将所有低灰度求和取平均,作为下一个高灰度中心
d1(i)=abs(c1(i)-c1(i-1));
d2(i)=abs(c2(i)-c2(i-1));
d3(i)=abs(c3(i)-c3(i-1));
ifd1(i)<
=0.001&
&
d2(i)<
d3(i)<
=0.001
R=c1(i);
G=c2(i);
B=c3(i);
k=i;
break;
R
G
B
img=uint8(img);
img(find(img<
R))=0;
img(find(img>
R&
img<
G))=128;
G))=255;
toc
subplot(2,2,3),imshow(img);
图三聚类后的图像'
)
5)subplot(2,2,4),imhist(img);
图四聚类后的图像直方图'
六、运行结果
第一组
图一
第二组
图二
第三组
图三
七、参考文献
[1]徐奕奕,刘智奇.基于文本图像的自适应补偿二值化处理算法[J].计算机仿真,2011,28(10):
240-243.
[2]刘玉红,王志芳.彩色图像二值化算法及应用[J].中国医学物理学杂志,2013,30(11):
3873-3877.
[3]李刚,宋文静.基于图像直方图的车牌图像二值化方法研究[J].交通运输系统工程与信息,2009,9
(1):
113-116.
[4]陈强,朱立新.结合Canny算子的图像二值化[J].计算机
[5]吴景岚,朱文兴.基于K中心点的文档聚类算法[J].兰州
[6]孟颖,罗可,刘建华,等.基于云计算的ACO-K中心点资
[7]源优化算法[J].计算机工程与应用,2013,49(5):
103-107.
[8]谢娟英,郭文娟.基于邻域的k中心点聚类算法[J].陕西师
[9]吴锐,黄剑华.基于灰度直方图和谱聚类的文本图像二值化方法[J].电子与信息学报,2009,31(10):
2461-2464.
[10]田自君,刘艺.基于LoG算子边缘检测的图像二值化处理[J].中国测试技术,2007,33(6):
109-111.