一、模糊聚类算法FCM简介
1 前言
图像分割是图像进行后续分析处理的基础,它将图像分成不同特征部分并获得所需目标,广泛应用于诸多领域.彩色多目标图像具有更为丰富的图像信息,目标色彩较多,且同一色彩的目标有时具有不连续性,图像分割方法中比较常见的有阈值法、边缘检测法以及边界跟踪法等,这类方法并不能取得有效的分割.近年来不少学者用聚类算法对图像进行分割,并取得了一定成果.
随着模糊理论的出现,模糊C均值聚类(FCM)分割算法由于其高效简捷得到了广泛应用.它能够将所需分割图像的信息进行很好的保留,但FCM聚类会出现局部最优、对噪声和孤立点敏感等.基于此,国内外学者提出了许多FCM改进算法和相关图像处理方法.许超结合粒子群算法和FCM进行图像分割,能够实现彩色图像的准确分割,比FCM分割结果更好.胡学刚等人针对FCM聚类的不足,采用区域分裂合并法实现了彩色图像的自适应分割,取得了良好的分割结果,并提高了抗噪性能.邱磊等人将图像在HIS颜色空间采用邻域均值进行FCM聚类,实现了噪声图像的处理.邓廷权等人将模糊Histon直方图用于模糊C聚类中实现了图像的自适应模糊C均值聚类(FCM)算法。
2 模糊C均值聚类(FCM)算法
FCM算法是J.C.Bezdek[6]引入的基于模糊理论的常用聚类算法,它使类内数据对象的相似度达到最大,类间数据对象的相似度达到最小.它是在传统划分C均值聚类的基础上进行的改进,根据图像像素隶属聚类中心的程度实现样本的划分,在图像分割中得到了较普遍的使用.但该算法起始聚类中心具有不确定性,图像聚类效果对其敏感,会出现局部最优现象.
FCM算法思想:对图像聚类中心进行初始化后,根据公式求解图像中各像素对聚类中心的隶属度与新的聚类中心,以使目标准则函数实现最优.
FCM算法的目标函数为:
FCM算法流程:
1)初始化vi,c和m;
2)根据公式(3)更新隶属度矩阵U.
3)根据公式(4)更新聚类中心.
4)不断迭代直到‖vi+1-vi‖<ε(ε>0),反之继续执行步骤2).
二、部分源代码
%% 程序分享 %--------------------------------------clearclose allclc%% %%%%%%%%%%%%%%%图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I=imread('3096.jpg');if size(I,3) == 3I=rgb2gray(I);elseendI=im2double(I);figure;imshow(I);title('(a)原始图像')% I=I;%不加噪声%I=imnoise(I,'speckle',deta_2);% I=imnoise(I,'salt & pepper',0.05); %加噪图% I=imnoise(I,'gaussian',0,0.01); % 加高斯噪声figure;imshow(I);title('(b)加噪图像');imwrite(I,'2.jpg');[m,n]=size(I);%k 聚类数目k=2;% k=3;I4 = I(:); %% 将图像灰度按列排列%% ------------------------ fcm算法------------------------fcm_spatial_mean_label=zeros(m*n,1);t=cputime;tic;[O2, U2, obj_fcn2] = fcm(I4, k);toc;time_fcm_spatial_mean=cputime-t;%% 最大隶属度原则maxU2 = max(U2); %隶属度最大 for j=1:kindex = find(U2(j, :) == maxU2); %隶属度最大对应的像素位置fcm_spatial_mean_label(index) = j; endlabels2=reshape(fcm_spatial_mean_label,[m n]);labels2=uint16(labels2);%% 显示聚类分割图labels2(find(labels2==1))=0;labels2(find(labels2==2))=255;labels2(find(labels2==3))=180;labels2(find(labels2==4))=100;labels2=uint8(labels2);figure;imshow(labels2,[]);title('(c)聚类分割图');imwrite(labels2,'3.1.tiff','tiff','Resolution',300);%输出结果,保存为tif图片
三、运行结果
四、matlab版本及参考文献
1 matlab版本
a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,.
[5]陈浩,方勇,朱大洲,王成,陈子龙.基于蚁群算法的玉米植株热红外图像边缘检测[J].农机化研究. ,37(06)