基于matlab的图像识别分类实验(一)
实验数据说明
coil-100数据集是灰色图片集合,包含对100个物体从不同角度的拍摄,每隔 5 度拍摄一副图像,每个物体 72 张图像。每个子文件夹代表一个物体的全部图像。共100个子文件夹,每个文件夹有72张图像。
链接:https://pan.baidu.com/s/1MoI66gjWL8vjbNaD30oGNg 提取码:1xta
实验内容
for time=1:5 //对数据集进行五次划分,相当于进行五次实验,即五次循环
for i=1:100 //以一次循环访问物体图片为例,循环前指定为空,防止发生覆盖,i为子文件夹的个数,即第i个物体
1、以一个文件夹为例,随机打乱序号,生成索引向量,取前 2/3 作为训练样本,后 1/3 作为测试样本。在训练样本中,读取长度为训练样本大小的索引向量,读出图片,先调整为灰度图,后调整图像大小,将处理完的图像的属性按列存放在训练样本集中,测试样本以此类推,将测试图像的属性按列存放在测试样本中。
2、取完100个文件夹所有样本后,将得到的样本数据集利用save 函数存储在data.mat。
实验结果预览效果
实验代码
clc,clear all
datapath='F:/coil/object_1/';
im=dir([datapath,'/*.png']);%读出图像
ind=randperm(72);%随机打乱顺序
ims=imread([datapath,im(ind(1,1)).name]);%读出图像
figure(1);imshow(ims);
ims=rgb2gray(ims); %将图片转成灰度图
figure(2);imshow(ims);
ims=imresize(ims,[32,32]);%将图像调整为统一大小
figure(3);imshow(ims);
该代码用于展示效果图1,即展示原图,灰度图,变小后的图
clc;clear;
%读取图像:完成训练集与测试集的划分(比例为2:1)
datapath='F:/coil/object_%s/';%指定路径
traindata=[];%指定训练集为空
testdata=[];%指定测试集为空
trainlabel=[];testlabel=[];%标签矩阵
for time=1:5traindata_now=[];trainlabel_now=[]; %当前第time次的训练集及标签testdata_now=[];testlabel_now=[]; %当前第time次的测试集及标签for i=1:100ind=[];trainind=[];testind=[];xtrain=[];xtest=[];%循环前指定为空,防止发生覆盖path=sprintf(datapath,num2str(i));%%拼接字符串im=dir([path,'/*.png']);%读出图像mysize=size(im);if numel(mysize)>2 %判断图像是否为灰度图im=rgb2gray(im);%将图片转换成灰度图elseendt=length(im);%统计个数ind=randperm(t);%随机打乱顺序trainind=ind(1:2*floor(t/3));%取前2/3作为训练样本的索引testind=ind(1+2*floor(t/3):end);%剩下的1/3作为测试样本的索引%取出训练样本for j=1:size(trainind,2)index=trainind(j);%取出训练样本索引中的一个imr=imread([path,im(index).name]);%读出图像imr=imresize(imr,[32 32]);%规定为统一大小imf=imr(:);%拉成列向量xtrain(:,j)=imf;%训练样本的第j个放在矩阵第j列endtraindata_now=[traindata_now xtrain];%训练样本取完trainlabel_now=[trainlabel_now i*ones(1,size(trainind,2))];%给训练样本赋标签traindata{1,time}=traindata_now;%traindata的第一个元素是第一次划分的训练集矩阵,以此类推trainlabel{1,time}=trainlabel_now;%trainlabel的第一个元素是第一次划分的训练集标签,以此类推%取出测试样本for jj=1:size(testind,2)index=testind(jj);%取出测试样本索引中的一个imr=imread([path,im(index).name]);%读出图像imr=imresize(imr,[32 32]);%规定为统一大小imf=imr(:);%图像拉成向量xtest(:,jj)=imf;%测试样本的第jj个放在矩阵第jj列endtestdata_now=[testdata_now xtest]; %测试样本取完testlabel_now=[testlabel_now i*ones(1,size(testind,2))];%给测试样本赋标签testdata{1,time}=testdata_now; %testdata的第一个元素是第一次划分的测试集矩阵,以此类推testlabel{1,time}=testlabel_now; %testlabel的第一个元素是第一次划分的测试集标签,以此类推end
end
save('data.mat','traindata','testdata','trainlabel','testlabel');
该代码是将样本进行划分并将五次划分数据后图片的属性按列存储。
基于matlab的图像识别分类实验(一)相关推荐
- 用matlab仿真杨氏干涉代码,基于MATLAB杨氏干涉仿真实验
基于MATLAB杨氏干涉仿真实验 张防震 朱亚琼 (河南财政税务高等专科学校 河南 郑州 450002) 摘 要: 利用MATLAB高性能的数值计算和可视化软件特点,对光学中的杨氏干涉实验进行仿真.单 ...
- 杨氏双缝干涉 matlab仿真,基于MATLAB的杨氏双缝干涉实验仿真.pdf
基于MATLAB的杨氏双缝干涉实验仿真.pdf ( ) 第 27卷 湖北师范学院学报 自然科学版 Vol27 第 1期 Jou rnal of Hubei Norm al U n iversity ( ...
- 用matlab电磁波双缝干涉实验报告,基于MATLAB的杨氏双缝干涉实验的研究
1杨氏双缝干涉 如图1所示,设单缝光阑S 到狭缝S 1和S 2距离相等,狭缝S 1和S 2的宽度均为b ,双缝之间遮光部分的宽为a ,双缝间的距离为d (d =a +b ),光屏离双缝的距离为D . ...
- 杨氏双缝干涉 matlab仿真,基于MATLAB的杨氏双缝干涉实验仿真
第 27卷 湖北师范学院学报 (自然科学版 ) Vol27 第 1期 Journal of HubeiNormalUniversity (Natural Science) No11, 2007 基于 ...
- 如何使用matlab仿真物理实验,基于Matlab的大学物理实验模拟.pdf
维普资讯 浙江科技学院学报,第 2O卷第 2期,2008年 6月 JournalofZhejiangUniversityofScienceandTechnology Vo1.20No.2,June20 ...
- matlab高中必修三数学模拟,基于MATLAB的模拟调制实验报告
<基于MATLAB的模拟调制实验报告>由会员分享,可在线阅读,更多相关<基于MATLAB的模拟调制实验报告(19页珍藏版)>请在金锄头文库上搜索. 1.基于 MATLAB 的模 ...
- matlab计算叶子的面积,基于MATLAB进行树叶面积测量实验报告
<基于MATLAB进行树叶面积测量实验报告>由会员分享,可在线阅读,更多相关<基于MATLAB进行树叶面积测量实验报告(3页珍藏版)>请在人人文库网上搜索. 1.科学计算与数据 ...
- 计算识别率的matlab代码,基于MATLAB神经网络图像识别的高识别率代码
更新时间: 2019年3月14日10:50:04作者: 钱190 今天,我将与您分享一个基于MATLAB神经网络图像识别的高识别代码. 我认为内容非常好. 现在我与大家分享. 具有很好的参考价值. 需 ...
- matlab电位图仿真实验,基于MATLAB的静电场描绘实验仿真
百家论点 基于MATLAB的静电场描绘实验仿真* 陈晓旭 唐翠明 (四川理工学院物电学院,四川 自贡 643000) 摘 要:静电场强度和电势空间分布检测较困难,常采用稳恒电流产生的稳恒电场来模拟静电 ...
- matlab创新开放性实验,基于MATLAB 的自动控制原理实验仿真系统的设计
基于MATLAB 的自动控制原理实验仿真系统的设计 基于MATLAB 的自动控制原理实验仿真系统的设计 田晴,张茁 (河北联合大学电气工程学院,河北唐山063000) 摘要:MATLAB的图形用户界面 ...
最新文章
- C++ 通讯录学习总结
- 机器学习与数据挖掘——第二章 数据与数据预处理
- java floyd_百度百科里面的floyd算法java的代码,总是无法运行。请问是代码有问题吗,如何编译啊?...
- Java工作笔记-JPA中Repository新增自定义更新操作
- 《梦断代码》随笔第2篇
- 恒拓开源携开源中国有望于 10 月底挂牌新三板
- NSGA2算法MATLAB
- Java知多少(31)static关键字以及Java静态变量和静态方法
- php过滤除了文字数据英文,正则:过滤除英文和汉字的其它特殊符号
- c语言小游戏代码大全300行,C语言贪吃蛇经典小游戏
- 《商用密码应用与安全性评估》第一章 密码基础知识-小结
- java钝化_黑马day14 监听器之javaBean对象的活化和钝化
- matlab无人机路径规划,一种新的优化算法,天牛群算法,比蚁群算法效果好,收敛快
- python查找联系人_python ---简易联系人
- ubuntu mysql快捷键_ubuntu快捷键设置大全
- 为什么计算机屏幕出现黄色,电脑为什么会出现显示器屏幕发黄
- 高德地图api调用demo_一 (1)高德SDK的使用
- 计算机科学与技术毕业论文选题【精选】
- 2020山东计算机大赛裴鹏飞,裴鹏飞个人事迹加工作照(7页)-原创力文档
- Plant Simulation使用技巧