資源簡介
模糊C均值聚類圖像分割算法matlab實現模糊C均值聚類圖像分割算法matlab實現模糊C均值聚類圖像分割算法matlab實現
代碼片段和文件信息
clear?all%清除workspace中的所有變量
I=imread(‘4.bmp‘);%讀入圖像文件
figure(1);???????????
imshow(I);title(‘原圖像‘);?%顯示原來的圖像
count=imhist(I);???%灰度頻率
[mn]=size(I);%測矩陣的大小
h=count/(m*n)%求灰度級數
V1=zeros(2);?????%確定對稱矩陣A
V2=zeros(2);
U1=zeros(2256);???%設定分區矩陣U
m1=2;??????????????%確定加權指數m
V1(1)=20;??????????%初始化聚類中心V,C=2
V1(2)=250;
l=length(h)
I=double(I);%轉換變量的類型
diedai=1;
while?(diedai==1)?
????for?i=1:l??????%修改迭代過程中的分區矩陣
?????????if?(i-V1(1))^2>0.01&(i-V1(2))^2>0.01
?????????????tep1=(i-V1(1))^2;
?????????????tep2=(i-V1(2))^2;
?????????????U1(1i)=1.0/(1+(tep1/tep2)^(1.0/(m1-1)));
?????????????U1(2i)=1.0/(1+(tep2/tep1)^(1.0/(m1-1)));
?????????else
?????????????if?(i-V1(1))^2<0.01
????????????????U1(1i)=1.0;
?????????????else
????????????????U1(2i)=0.0;
?????????????end
?????????????if?(i-V1(2))^2<0.01
????????????????U1(1i)=0.0;
?????????????else
????????????????U1(2i)=1.0;
?????????????end?
?????????end
?????end
?????tep1=0.0;
?????tep2=0.0;
?????tep3=0.0;
?????tep4=0.0;
?????for?i=1:l?????%求迭代過程中的聚類中心
?????????tep1=tep1+h(i)*(i)*U1(1i)^m1;
?????????tep2=tep2+h(i)*U1(1i)^m1;
?????????tep3=tep3+h(i)*(i)*U1(2i)^m1;
?????????tep4=tep4+h(i)*U1(2i)^m1;
?????end
?????V2(1)=tep1/tep2;
?????V2(2)=tep3/tep4;
?????if?(V1(1)-V2(1))^2<0.01&(V1(2)-V2(2))^2<0.01???
?????????diedai=0;?%迭代停止判斷??閾值取ε=0.01
?????else
?????????V1(1)=V2(1);
?????????V1(2)=V2(2);
?????end
end
?
I1=zeros(mn);???%?m?n?為圖像的尺度
for?i=1:m????????%?二值化圖像
????for?j=1:n
????????if?(I(ij)-V2(1))^2>(I(ij)-V2(2))^2?????%?距離聚類中心近,則將二值圖數值置為1(250),?否則,置為0(黑色)???
????????????I1(ij)=250;???
????????else?I1(ij)=0;??????????????????????
????????end
????end
end
figure(2);
I1=uint8(I1);???%?轉換為無符號型整數?8表示8位二進制整數??范圍0~255
imshow(I1);title(‘分割后的圖像‘);???%顯示分割后的圖像
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1975??2009-05-19?16:33??新建文件夾?(5)\FCM.m
?????目錄??????????0??2010-04-19?11:14??新建文件夾?(5)
-----------?---------??----------?-----??----
?????????????????1975????????????????????2
- 上一篇:16QAM調制解調
- 下一篇:matlab中用GUI實現串口實時顯示波形
評論
共有 條評論