基于matlab的图像K均值聚类算法程序.docx

上传人:牧羊曲112 文档编号:3384949 上传时间:2023-03-12 格式:DOCX 页数:4 大小:37.13KB
返回 下载 相关 举报
基于matlab的图像K均值聚类算法程序.docx_第1页
第1页 / 共4页
基于matlab的图像K均值聚类算法程序.docx_第2页
第2页 / 共4页
基于matlab的图像K均值聚类算法程序.docx_第3页
第3页 / 共4页
基于matlab的图像K均值聚类算法程序.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于matlab的图像K均值聚类算法程序.docx》由会员分享,可在线阅读,更多相关《基于matlab的图像K均值聚类算法程序.docx(4页珍藏版)》请在三一办公上搜索。

1、基于matlab的图像K均值聚类算法程序K均值聚类法分为如下几个步骤:一、初始化聚类中心1、根据具体问题,凭经验从样本集中选出C个比较合适的样本作为初始聚类中心。2、用前C个样本作为初始聚类中心。3、将全部样本随机地分成C类,计算每类的样本均值,将样本均值作为初始聚类中心。二、初始聚类1、按就近原则将样本归入各聚类中心所代表的类中。2、取一样本,将其归入与其最近的聚类中心的那一类中,重新计算样本均值,更新聚类中心。然后取下一样本,重复操作,直至所有样本归入相应类中。三、判断聚类是否合理采用误差平方和准则函数判断聚类是否合理,不合理则修改分类。循环进行判断、修改直至达到算法终止条件。clccle

2、articRGB= imread (test5.jpg); %读入像img=rgb2gray(RGB);m,n=size(img);subplot(2,2,1),imshow(img);title( 图一 原图像)subplot(2,2,2),imhist(img);title( 图二 原图像的灰度直方图)hold off;img=double(img);for i=1:200c1(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-

3、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<=0);%寻找中间的一个聚类中心n_b=find(g_b>0&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);%将所有低灰度求和取平均,作为下一个高灰度中心

4、d1(i)=abs(c1(i)-c1(i-1);d2(i)=abs(c2(i)-c2(i-1);d3(i)=abs(c3(i)-c3(i-1);if d1(i)<=0.001&d2(i)<=0.001&d3(i)<=0.001R=c1(i);G=c2(i);B=c3(i);k=i; break;endendR G Bimg=uint8(img);img(find(img<R)=0;img(find(img>R&img<G)=128;img(find(img>G)=255;tocsubplot(2,2,3),imshow(img);title( 图三 聚类后的图像) subplot(2,2,4),imhist(img);title( 图四 聚类后的图像直方图)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号