資源簡介
利用matlab實現的k均值算法,對不同主體的圖片進行分類,內含圖片資源,分類為人,建筑,車,恐龍,大象和海灘風景。

代碼片段和文件信息
clear
%循環讀取所有圖片,得到灰度矩陣,分別鋪成一行,放入data中,形成kmeans數據data
pt?=?‘C:\matlab2017b\my-file\kmeans\image100\‘;??
ext?=?‘*.jpg‘;??
dis?=?dir([pt?ext]);??
nms?=?{dis.name};??
data?=?zeros(length(nms)98304);??
for?k?=?1:1:length(nms)??
????nm?=?[pt?nms{k}];??
????I?=?imread(nm);??
????gray?=?rgb2gray(I);
????data(k:)?=?reshape(gray198304);??
end?
%kmeans聚類算法處理數據
N=6;%設置聚類數目??
[mn]=size(data);??
pattern=zeros(mn+1);??
center=zeros(Nn);%初始化聚類中心??
pattern(:1:n)=data(::);??
for?x=1:N??
????center(x:)=data(randi(601):);%第一次隨機產生聚類中心??
end??
while?true??
????distence=zeros(1N);??
????num=zeros(1N);??
????new_center=zeros(Nn);??
???
????for?x=1:m??
????????for?y=1:N??
????????distence(y)=norm(data(x:)-center(y:));%計算到每個類的距離??
????????end??
????????[~?temp]=min(distence);%求最小的距離??
????????pattern(xn+1)=temp;
????end??
????k=0;??
????for?y=1:N??
????????for?x=1:m??
????????????if?pattern(xn+1)==y??
????????????????new_center(y:)=new_center(y:)+pattern(x1:n);??
????????????????num(y)=num(y)+1;??
????????????end??
????????end??
????????new_center(y:)=new_center(y:)/num(y);??
????????if?norm(new_center(y:)-center(y:))<0.1??
????????????k=k+1;??
????????end??
????end??
????if?k==N??
????????break;??
????else??
????????center=new_center;??
????end??
end??
[m?n]=size(pattern);
%最后顯示聚類后的灰度圖像?????
%?for?i=1:m??
%?????if?pattern(in)==1
%?????????imshow(reshape(pattern(i1:n-1)256384))
%?????????c1?=?zeros(256384);
%?????????c1(::)?=?reshape(pattern(i1:n)256384);
%?????????mkdir?image1
%?????????imwrite(gray‘image1/test1.png‘)?
%?????elseif?pattern(in)==2??
%??????????plot(pattern(i1)pattern(i2)‘g*‘);??
%??????????plot(center(21)center(22)‘ko‘);??
%?????elseif?pattern(in)==3??
%??????????plot(pattern(i1)pattern(i2)‘b*‘);??
%??????????plot(center(31)center(32)‘ko‘);??
%?%?????elseif?pattern(in)==4??
%?%??????????plot(pattern(i1)pattern(i2)‘y*‘);??
%?%??????????plot(center(41)center(42)‘ko‘);??
%?????else??
%??????????plot(pattern(i1)pattern(i2)‘m*‘);??
%??????????plot(center(41)center(42)‘ko‘);??
%?????end??
%?????end
c?=?zeros(256384);
for?j?=?1:1:N
????a?=?find(pattern(:n)==j);
????a?=?a‘;?
????figure
????for?i?=?1:1:num(j)
????????subplot(1num(j)i)
????????nm1?=?[pt?nms{a(i)}];??
????????I1?=?imread(nm1);
????????imshow(I1)
????end?
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-04?10:00??kmeans圖像分類\
?????文件????????2510??2018-06-01?21:21??kmeans圖像分類\cluster_kmeans.m
?????目錄???????????0??2018-06-04?10:00??kmeans圖像分類\image60\
?????文件???????26552??2001-07-07?04:02??kmeans圖像分類\image60\102.jpg
?????文件???????35137??2001-07-07?04:02??kmeans圖像分類\image60\104.jpg
?????文件???????40729??2001-07-07?04:02??kmeans圖像分類\image60\107.jpg
?????文件???????25540??2001-07-07?04:02??kmeans圖像分類\image60\112.jpg
?????文件???????31940??2001-07-07?04:02??kmeans圖像分類\image60\119.jpg
?????文件???????16367??2001-07-07?04:02??kmeans圖像分類\image60\126.jpg
?????文件???????31944??2001-07-07?04:02??kmeans圖像分類\image60\132.jpg
?????文件???????28383??2001-07-07?04:02??kmeans圖像分類\image60\159.jpg
?????文件???????30259??2001-07-07?04:02??kmeans圖像分類\image60\179.jpg
?????文件???????28958??2001-07-07?04:02??kmeans圖像分類\image60\191.jpg
?????文件???????23251??2001-07-07?04:02??kmeans圖像分類\image60\207.jpg
?????文件???????31123??2001-07-07?04:02??kmeans圖像分類\image60\243.jpg
?????文件???????33064??2001-07-07?04:02??kmeans圖像分類\image60\251.jpg
?????文件???????26743??2001-07-07?04:02??kmeans圖像分類\image60\283.jpg
?????文件???????33778??2001-07-07?04:02??kmeans圖像分類\image60\284.jpg
?????文件???????29890??2001-07-07?04:02??kmeans圖像分類\image60\286.jpg
?????文件???????31669??2001-07-07?04:02??kmeans圖像分類\image60\288.jpg
?????文件???????23238??2001-07-07?04:02??kmeans圖像分類\image60\292.jpg
?????文件???????27883??2001-07-07?04:02??kmeans圖像分類\image60\298.jpg
?????文件???????24264??2001-07-07?04:02??kmeans圖像分類\image60\299.jpg
?????文件???????34039??2001-07-07?04:02??kmeans圖像分類\image60\302.jpg
?????文件???????29341??2001-07-07?04:02??kmeans圖像分類\image60\306.jpg
?????文件???????28547??2001-07-07?04:02??kmeans圖像分類\image60\313.jpg
?????文件???????32212??2001-07-07?04:02??kmeans圖像分類\image60\320.jpg
?????文件???????27337??2001-07-07?04:02??kmeans圖像分類\image60\330.jpg
?????文件???????30136??2001-07-07?04:02??kmeans圖像分類\image60\331.jpg
?????文件???????28155??2001-07-07?04:03??kmeans圖像分類\image60\344.jpg
?????文件???????27866??2001-07-07?04:03??kmeans圖像分類\image60\346.jpg
............此處省略32個文件信息
- 上一篇:同步發電機勵磁控制系統
- 下一篇:樹葉圖像特征分類識別MATLAB程序-青橙是也
評論
共有 條評論