• 大小: 1.56MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-31
  • 语言: Matlab
  • 标签: matlab  kmeans  image  

资源简介

利用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个文件信息

评论

共有 条评论