• 大小: 1.21MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-20
  • 语言: Matlab
  • 标签: matlab  fcm  flicm  

资源简介

matlab代码+GUI设计+论文;版本是MATLAB2017a。期末做的课程设计,有七种模糊聚类图像分割的比较及分析,HCM、FCM、FCMS、FCMS1、FCMS2、EnFCM、FLICM。

资源截图

代码片段和文件信息

function IMMM=enfcm(IM)
%IM是输入的源图像
%IX2是分类结果IM=imread(‘001.jpg‘);
%subplot(221)imshow(uint8(IM))title(‘原始图像‘);
IM=uint8(IM);
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
        
%显示最终分类结果subplot(121)imshow(IMMM)
IMMM=uint8(IMM

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-17 02:09  201621124001 林思洁\
     目录           0  2019-01-17 01:59  201621124001 林思洁\CODE_基于FCM的带噪图像分割\
     文件       32633  2011-08-13 20:43  201621124001 林思洁\CODE_基于FCM的带噪图像分割\001.jpg
     文件      121078  2006-04-13 10:43  201621124001 林思洁\CODE_基于FCM的带噪图像分割\002.bmp
     文件       25778  2011-08-21 08:30  201621124001 林思洁\CODE_基于FCM的带噪图像分割\003.jpg
     文件       38519  2011-08-20 23:20  201621124001 林思洁\CODE_基于FCM的带噪图像分割\004.jpg
     文件       13745  2002-04-05 10:06  201621124001 林思洁\CODE_基于FCM的带噪图像分割\005.jpg
     文件       99382  2003-08-03 03:32  201621124001 林思洁\CODE_基于FCM的带噪图像分割\006.bmp
     文件       83794  2011-03-10 12:26  201621124001 林思洁\CODE_基于FCM的带噪图像分割\007.jpg
     文件       44607  2003-01-26 01:03  201621124001 林思洁\CODE_基于FCM的带噪图像分割\008.png
     文件        2763  2011-08-18 13:39  201621124001 林思洁\CODE_基于FCM的带噪图像分割\009.jpg
     文件        8183  2011-08-18 13:47  201621124001 林思洁\CODE_基于FCM的带噪图像分割\010.jpg
     文件      263222  2011-06-21 23:41  201621124001 林思洁\CODE_基于FCM的带噪图像分割\012.bmp
     文件        3689  2011-06-20 17:51  201621124001 林思洁\CODE_基于FCM的带噪图像分割\014.jpg
     文件       19694  2002-04-29 14:24  201621124001 林思洁\CODE_基于FCM的带噪图像分割\015.jpg
     文件       10950  2002-05-07 07:48  201621124001 林思洁\CODE_基于FCM的带噪图像分割\017.jpg
     文件        5199  2011-08-18 13:39  201621124001 林思洁\CODE_基于FCM的带噪图像分割\018.jpg
     文件       22612  2002-05-17 09:26  201621124001 林思洁\CODE_基于FCM的带噪图像分割\019.jpg
     文件       61141  2011-08-21 08:30  201621124001 林思洁\CODE_基于FCM的带噪图像分割\020.jpg
     文件       69432  2003-08-08 16:44  201621124001 林思洁\CODE_基于FCM的带噪图像分割\021.tif
     文件        3123  2019-01-03 17:31  201621124001 林思洁\CODE_基于FCM的带噪图像分割\enfcm.m
     文件        2504  2019-01-03 16:54  201621124001 林思洁\CODE_基于FCM的带噪图像分割\fcm.m
     文件        2781  2019-01-03 17:18  201621124001 林思洁\CODE_基于FCM的带噪图像分割\fcm_s.m
     文件        2805  2019-01-03 17:20  201621124001 林思洁\CODE_基于FCM的带噪图像分割\fcms1.m
     文件        2780  2019-01-03 17:30  201621124001 林思洁\CODE_基于FCM的带噪图像分割\fcms2.m
     文件        3221  2019-01-03 23:26  201621124001 林思洁\CODE_基于FCM的带噪图像分割\flicm.m
     文件       51172  2019-01-03 14:16  201621124001 林思洁\CODE_基于FCM的带噪图像分割\gui.fig
     文件        7315  2019-01-04 11:31  201621124001 林思洁\CODE_基于FCM的带噪图像分割\gui.m
     文件        3584  2019-01-02 11:28  201621124001 林思洁\CODE_基于FCM的带噪图像分割\gui_activex1
     文件        3584  2019-01-02 11:28  201621124001 林思洁\CODE_基于FCM的带噪图像分割\gui_activex2
     文件        1887  2019-01-03 17:06  201621124001 林思洁\CODE_基于FCM的带噪图像分割\hardcm.m
............此处省略2个文件信息

评论

共有 条评论