• 大小: 751KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: Matlab
  • 标签: FCM  MATLAB  

资源简介

在经典模糊C均值算法的基础上,用五种方法改进方法同时实现不同图形的分割,并且也附带硬C均值算法的实现。

资源截图

代码片段和文件信息

clcclear all;
%function [IX2]=enfcm(IM);
%IM是输入的源图像
%IX2是分类结果
IM=imread(‘001.jpg‘);
figure(1)
%subplot(221)imshow(uint8(IM))title(‘原始图像‘);

IM=IM(::1);
%subplot(222)imshow(uint8(IM))title(‘灰度图像‘);
[maxXmaxY]=size(IM);%图像大小
%IM = imnoise(IM‘salt & pepper‘0.02);
%IM=imnoise(IM‘gaussian‘00.002);
IM=double(IM);

a=[111;101;111];

im=1/2.8 *(0.125* filter2(aIM)+IM);%参数a=0.5
%subplot(223)imshow(uint8(im))title(‘变换图像‘);
IMM=cat(3imimim);

%初始化聚类中心(3类)

ttFcm=0;%聚类次数,最多15次
cc1=8;
cc2=120;
cc3=200;
while(ttFcm<15);
    ttFcm=ttFcm+1;
    c1=cc1*ones(maxXmaxY);
    c2=cc2*ones(maxXmaxY);
    c3=cc3*ones(maxXmaxY);
    c=cat(3c1c2c3);
    
  ree=repmat(0.00001maxXmaxY);
    ree1=cat(3reereeree);
    distance=IMM-c;
    distance=distance.*distance+ree1;
  
    %计算隶属度u
        distance1=double( distance(::1)+distance(::2)+distance(::3));
        u1=distance(::1)./distance1;
        u2=distance(::2)./distance1;  
        u3=distance(::3)./distance1;
        
    %计算聚类中心c
        r=zeros(1256); %创建一个全零矩阵,1×256,计算各灰度出现的次数  
     for i=1:256  ;
        r(i)=length(find(im == (i-1)));  
     end
     
        im=uint8(im);
        uu1=zeros(1256);
        uu2=zeros(1256);
        uu3=zeros(1256);
     for m=1:1:maxX*maxY;
        uu1(im(m)+1)=u1(m) ;  
        uu2(im(m)+1)=u2(m) ;
        uu3(im(m)+1)=u3(m); 
    end
        x=1:1:256; 
       ccc1=double(sum(r.*x.*uu1.*uu1)/sum(r.*uu1.*uu1));
       ccc2=double(sum(r.*x.*uu2.*uu2)/sum(r.*uu2.*uu2));
       ccc3=double(sum(r.*x.*uu3.*uu3)/sum(r.*uu3.*uu3));
       
       abs1=abs(cc1-ccc1)/cc1;
       abs2=abs(cc2-ccc2)/cc2;
       abs3=abs(cc3-ccc3)/cc3;
       
       tmpMatrix=[abs1abs2abs3];
       
      pp=cat(3u1u2u3);
     
       for i=1:maxX;
            for j=1:maxY;
                max1=max([pp(ij1)pp(ij2)pp(ij3)]);
                if max(max1)==u1(ij)
                    IX2(ij)=1;
                elseif max(max1)==u2(ij)
                    IX2(ij)=2;
                else
                    IX2(ij)=3;
                end
            end
        end
     %判结束条件
        if max(tmpMatrix)<0.000000001
            break;
        else
            cc1=ccc1;
            cc2=ccc2;
            cc3=ccc3;
        end
        
     for i=1:maxX;
            for j=1:maxY;
                if IX2(ij)==3
                    IMMM(ij)=20;
                elseif IX2(ij)==2
                    IMMM(ij)=255;
                else
                    IMMM(ij)=255;
                end
            end
      end
        
end

    for i=1:maxX;
            for j=1:maxY;
                if IX2(ij)==3
                    IMMM(ij)=20;
                elseif IX2(ij)==2
                    IMMM(ij)=255;
                else
                    IMMM(ij)=255;
                end
            end
    end
        
%显示最终分类结果
IMMM=uin

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      32633  2011-08-13 20:43  基于FCM的图像分割   MATLAB\001.jpg

     文件     121078  2006-04-13 10:43  基于FCM的图像分割   MATLAB\002.bmp

     文件      25778  2011-08-21 08:30  基于FCM的图像分割   MATLAB\003.jpg

     文件      38519  2011-08-20 23:20  基于FCM的图像分割   MATLAB\004.jpg

     文件      13745  2002-04-05 10:06  基于FCM的图像分割   MATLAB\005.jpg

     文件      99382  2003-08-03 03:32  基于FCM的图像分割   MATLAB\006.bmp

     文件      83794  2011-03-10 12:26  基于FCM的图像分割   MATLAB\007.jpg

     文件      44607  2003-01-26 01:03  基于FCM的图像分割   MATLAB\008.png

     文件       2763  2011-08-18 13:39  基于FCM的图像分割   MATLAB\009.jpg

     文件       8183  2011-08-18 13:47  基于FCM的图像分割   MATLAB\010.jpg

     文件     263222  2011-06-21 23:41  基于FCM的图像分割   MATLAB\012.bmp

     文件       3689  2011-06-20 17:51  基于FCM的图像分割   MATLAB\014.jpg

     文件      19694  2002-04-29 14:24  基于FCM的图像分割   MATLAB\015.jpg

     文件      10950  2002-05-07 07:48  基于FCM的图像分割   MATLAB\017.jpg

     文件       5199  2011-08-18 13:39  基于FCM的图像分割   MATLAB\018.jpg

     文件      22612  2002-05-17 09:26  基于FCM的图像分割   MATLAB\019.jpg

     文件      61141  2011-08-21 08:30  基于FCM的图像分割   MATLAB\020.jpg

     文件      69432  2003-08-08 16:44  基于FCM的图像分割   MATLAB\021.tif

     文件       3156  2011-08-21 11:40  基于FCM的图像分割   MATLAB\enfcm.asv

     文件       3157  2011-08-22 13:08  基于FCM的图像分割   MATLAB\enfcm.m

     文件       2576  2011-08-21 10:05  基于FCM的图像分割   MATLAB\fcm3.asv

     文件       2576  2011-08-22 12:37  基于FCM的图像分割   MATLAB\fcm3.m

     文件       2824  2011-08-21 11:40  基于FCM的图像分割   MATLAB\fcms1.asv

     文件       2821  2011-08-22 13:00  基于FCM的图像分割   MATLAB\fcms1.m

     文件       2800  2011-08-21 11:40  基于FCM的图像分割   MATLAB\fcms2.asv

     文件       2797  2011-08-22 13:01  基于FCM的图像分割   MATLAB\fcms2.m

     文件       2792  2011-08-21 11:40  基于FCM的图像分割   MATLAB\fcm_s.asv

     文件       2789  2011-08-22 12:57  基于FCM的图像分割   MATLAB\fcm_s.m

     文件       3189  2011-08-21 10:05  基于FCM的图像分割   MATLAB\flicm1.asv

     文件       3189  2011-08-22 13:08  基于FCM的图像分割   MATLAB\flicm1.m

............此处省略7个文件信息

评论

共有 条评论