多媒体实验1报告.docVIP

  • 1
  • 0
  • 约3.21千字
  • 约 6页
  • 2018-10-26 发布于山东
  • 举报
多媒体实验1报告.doc

多媒体实验1报告 一、实验目的 通过模糊c-均值(FCM)聚类实现图像的分割。 二、算法概要 FCM聚类算法目标函数为: (1-1) 如果表示每一个样本的维数,是一个矩阵;表示样本数目,通常表示图像像素数;表示聚类数目;是矢量隶属于第类的隶属度函数,满足且;聚类中心是矩阵,和更新等式分别为: (1-2) 对于每一个模糊隶属度,由控制模糊度的权重指数;为相似性测度。 三、变量说明 数据样本维数(灰度图像时为1); 像素点数目; 像素特征(灰度图像时,表示灰度值); 图像分割类别数; 像素点属于第类的隶属度; 第类聚类中心。 四、算法步骤 Step1:设置目标函数精度,模糊指数(通常取2),最大迭代次数; Step2:初始化模糊聚类中心; Step3:由式(1-2)更新模糊划分矩阵和聚类中心 Step4:若或则结束聚类;否则,并转Step3; Step5:由所得得到各像素点分类结果。 五、实验代码 %function[IX2]=fcm(IM); %IM是输入的原图象 %IX2是分类结果 clear close all; IM2=imread(Winter.jpg); IM=rgb2gray(IM2); [maxX,maxY]=size(IM); figure(3); imshow(IM); IMM=cat(4,IM,IM,IM,IM); %初始化聚类中心(3类) cc1=8; cc2=100; cc3=200; cc4=150; ttFcm=0; while(ttFcm15) ttFcm=ttFcm+1; c1=repmat(cc1,maxX,maxY); c2=repmat(cc2,maxX,maxY); c3=repmat(cc3,maxX,maxY); c4=repmat(cc4,maxX,maxY); c=cat(4,c1,c2,c3,c4); ree=repmat(0.000001,maxX,maxY); ree1=cat(4,ree,ree,ree,ree); distance=double(IMM)-c; distance=distance.*distance+ree1; daoShu=1./distance; daoShu2=daoShu(:,:,1)+daoShu(:,:,2)+daoShu(:,:,3)+daoShu(:,:,4); %计算隶属度u distance1=distance(:,:,1).*daoShu2; u1=1./distance1; distance2=distance(:,:,2).*daoShu2; u2=1./distance2; distance3=distance(:,:,3).*daoShu2; u3=1./distance3; distance4=distance(:,:,4).*daoShu2; u4=1./distance4; %计算聚类中心z ccc1=sum(sum(u1.*u1.*double(IM)))/sum(sum(u1.*u1)); ccc2=sum(sum(u2.*u2.*double(IM)))/sum(sum(u2.*u2)); ccc3=sum(sum(u3.*u3.*double(IM)))/sum(sum(u3.*u3)); ccc4=sum(sum(u4.*u4.*double(IM)))/sum(sum(u4.*u4)); tmpMatrix=[abs(cc1-ccc1)/cc1,abs(cc2-ccc2)/cc2,abs(cc3-ccc3)/cc3,abs(cc4-ccc4)/cc4]; pp=cat(4,u1,u2,u3,u4); for i=1:maxX for j=1:maxY if max(pp(i,j,:))==u1(i,j) IX2(i,j)=1; elseif max(pp(i,j,:))==u2(i,j) IX2(i,j)=2; elseif max(pp(i,j,:))==u3(i,j) IX2(i,j)=3; else

文档评论(0)

1亿VIP精品文档

相关文档