模糊聚类的图像分割实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一 基于模糊聚类的图像分割 一,实验目的 通过模糊c-均值(FCM)聚类实现图像的分割。 二,算法描述 动态聚类方法的目的是把n个样本划分到c个类别中的一个,使各样本与其所在类均值的误差平方和最小。FCM聚类算法的目标函数为: Min (U,Z) = (1) 其中m1是一个可以控制聚类结果的模糊程度的常数。在不同的隶属度定义方法下最小化式(1)的损失函数,就得到不同的模糊聚类方法。其中最有代表性的模糊C均值方法,要求一个样本对于各个聚类的隶属度之和为1,即 (2) 在条件(2)下求式(1)的最小值,令对和的偏导数为0,可得必要条件: (3) 三,变量说明 P 数据样本维数(灰度图像时为1); N 像素点数目; X 像素i特征(灰度图像时,表示灰度值); C 图像分割类别数; U 像素点i属于第j类的隶属度; Z 第i类聚类中心; 四, 算法步骤 Step1:设置目标函数精度ε,模糊指数m(m通常取2),最大迭代次数; Step2:初始化模糊聚类中心; Step3:由(3)式更新模糊划分矩阵U={}和聚类中心Z={}; Step4:若|J(t)-J(t-1)| ε或c则结束聚类;否则,t=t+1并转Step3; Step5:由所得U={}得到各像素点的分类结果。 五,实验内容与要求 (1)使用附录1的参考程序对无噪图像进行模糊聚类分割。 (2)使用附录1的参考程序对各种加噪(高斯噪声,椒盐噪声及斑点噪声等)图像进行模糊聚类分割,并与(1)中的相应结果进行比较。 (3)附录1的参考程序给出了图像分割为3类的FCM算法,请同学们进行分割为2类或4类的扩展,或者在理解例程或算法的基础上自己实现算法。 参考程序代码: function fcm tmp=imread(C:\Documents and Settings\Administrator\桌面\fig8.pgm); IM=tmp(:,:,1); %IM=imnoise(IM,speckle,0.01); %IM=imnoise(IM,salt pepper,0.1); %IM=imnoise(IM,gaussian,0,0.01); IM=double(IM); figure(1); imshow(uint8(IM)); [maxX,maxY]=size(IM); IMM=cat(3,IM,IM,IM); cc1=8; cc2=100; cc3=200; ttfcm=0; while(ttfcm15) ttfcm=ttfcm+1; c1=repmat(cc1,maxX,maxY); c2=repmat(cc2,maxX,maxY); c3=repmat(cc3,maxX,maxY); c=cat(3,c1,c2,c3); ree=repmat(0.000001,maxX,maxY); ree1=cat(3,ree,ree,ree) distance=IMM-c; distance=distance.*distance+ree1; daoShu=1./distance; daoShu2=daoShu(:,:,1)+daoShu(:,:,2)+daoShu(:,:,3); distance1=distance(:,:,1).*daoShu2; u1=1./distance1; distance2=distance(:,:,2).*daoShu2; u2=1./distance2; distance3=distance(:,:,3).*daoShu2; u3=1./distance3; ccc1=sum(sum(u1.*u1.*IM))/sum(sum(u1.*u1)); ccc2=sum(sum(u2.*u2.*IM))/sum(sum(u2.*u2)); ccc3=sum(sum(u3.*u3.*IM))/sum(sum(u3.*u3)); tmpMatrix=[abs(cc1-ccc1)/cc1,abs(cc2-ccc2)/cc2,abs(cc3-ccc3)/cc3]; pp=cat(3,u1,u2,u3); for i=1:maxX for j=1:maxY if max(pp(i,j,:))==u1(i,j)

文档评论(0)

xx88606 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档