天天看點

【圖像分割】基于直覺模糊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 參考文獻

繼續閱讀