天天看点

【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码

​1 简介

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

【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码
【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码
【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码
【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码
【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码
【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码

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      

3 仿真结果

【图像分割】基于直觉模糊C均值聚类实现图像分割IFCMmatlab代码

4 参考文献

继续阅读