1 简介
模糊C均值聚类(FCM)图像分割法是一种典型且常用的模糊聚类图像分割算法,该方法原理简单,迭代过程能够自适应,但是该方法也存在一些明显的缺陷:对噪声敏感且对重叠部分图像分割不准确。鉴于此,在已有的改进FCM算法的基础上,本文将模糊集扩展为直觉模糊集,并结合图像的空间信息提出了一种基于直觉模糊 C均值聚类(IFCM)算法的图像分割方法,直觉模糊集在模糊集上增加了非隶属度函数,即用隶属度及非隶属度来描述集合的模糊性,这比经典模糊集表示模糊性更精确。1、介绍了传统的模糊 C均值聚类(FCM)算法并讨论了其在图像分割时存在的优缺点。针对FCM算法只利用灰度信息导致图像分割不准确的缺点,讨论了几种结合空间信息的改进FCM算法。2、由于直觉模糊集(IFS)比模糊集(FS)更能准确地刻画数据的不确定性,本文构造了一种直觉模糊集并将该直觉模糊集引入到模糊C均值聚类算法中,提出了一种直觉模糊C均值算法(IFCM)。通过实验验证IFCM算法取得了较好的分割效果。

2 部分代码
clear
close all
clc
clear
close all
clc
%% %%%%%%%%%%%%%%%图像%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I=imread('3096.jpg');
if size(I,3) == 3
I=rgb2gray(I);
else
end
figure;imshow(I);title('(a)原始图像');imwrite(I,'1.tiff','tiff','Resolution',300);%保存为tif
%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.','.tiff'],'tiff','Resolution',300);%保存为tif
[m,n]=size(I);
% k=4;
k=2;
r=3;
m_index=2;
beta=6;
neighbor=3;%3*3邻域去噪
lamda_s_enfcm=3;%s参数
I=im2double(I);
I4 = I(:); %% 将图像灰度按列排列
%% ------------------------ ifcm------------------------
ifcm_label=zeros(m*n,1);
t=cputime;
tic;
[O2, U2, obj_fcn2] = ifcm(I4, k);
toc;
time_fcm_spatial_mean=cputime-t;
maxU2 = max(U2); %隶属度最大
for j=1:k
index = find(U2(j, :) == maxU2); %隶属度最大对应的像素位置
ifcm_label(index) = j;
end
labels2=reshape(ifcm_label,[m n]);
%显示聚类分割图
labels2(find(labels2==1))=0;
labels2(find(labels2==2))=255;
labels2(find(labels2==3))=125;
labels2(find(labels2==4))=180;
labels2=uint8(labels2);
% figure;imshow(labels2,[]);title('(c)聚类分割图');imwrite(labels2,'3.jpg');imwrite(labels2,'33.png')%保存为jpg
figure;imshow(labels2,[]);title('(c)聚类分割图');
imwrite(labels2,['3.1.','.tiff'],'tiff','Resolution',300);%保存为tif