• 风飞云开
    了解作者
  • matlab
    开发工具
  • 324KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 4
    下载次数
  • 2019-12-08 11:16
    上传日期
自己编写的matlab代码,可以用来识别水果并进行区分
基于matlab的图像识别代码.rar
  • 基于matlab的图像识别代码
  • 原图.jpg
    287.1KB
  • final_2.m
    939B
  • kmeans.jpg
    49.4KB
  • final_1.m
    1.4KB
内容介绍
close all %% 读入图像 picture=imread('原图.jpg'); %读入原图 figure,imshow(picture); %% 转换色彩空间;利用彩色空间转换函数把图像从RGB色彩空间转换到L*a*b色彩空间。 cform=makecform('srgb2lab'); %色彩空间转换,rgb空间转换成L*a*b*空间结构 L_AB=applycform(picture,cform); %将i中的颜色值转换到颜色变换结构cform指定的颜色空间,692*1024*3 %% 进行K-mean聚类 ab=double(L_AB(:,:,2:3)); %取出lab空间的a分量和b分量。。二维(692*1024)*2 hang=size(ab,1); %获取ab的行数,1为行 lie=size(ab,2); %获取矩阵的列数,2为列 ab=reshape(ab,hang*lie,[]); %转化为nrows行ncols列的矩阵到ab ncolors=4; %分割的区域个数为8 [cluster_idx cluster_center]=kmeans(ab,ncolors,'distance','sqEuclidean','Replicates',3);%重复类聚三次,避免局部最小值 %% 用k均值聚类算法对图像像素标记 pixel_labels=reshape(cluster_idx,hang,lie); %矩形形状改变 figure,imshow(pixel_labels,[]); %% 生成图像的色彩分割图,既是显示分割后的各个区域 % 把生成的图片保存下来,以从中间寻找合适的图片给finial_2.m使用。 segmented_images=cell(1,3); %细胞形数组 rgb_label=repmat(pixel_labels,[1 1 3]); %矩阵平铺 for k=1:ncolors %显示出分块后的图片 color=picture; color(rgb_label~=k)=0; segmented_images{k}=color; imwrite(segmented_images{k},[num2str(k) '.jpg']); figure,imshow(segmented_images{k}); end
评论
    相关推荐