matlab图片数据库读取,MATLAB无法读取图像数据库问题
本帖最后由 wx_taVNbhNT 于 2020-11-6 16:54 编辑
求问一下我需要读取一批图像,程序运行报错,我这是哪里出了问题?求大神解惑
附上程序:(版本R2020b)
clear
clc
%统一图片大小
y=28;
z=28;
%导入数据库各数字个数
geshu=11;
zongshu=geshu*2;
%导入数据库
u=[];
picSize=[y,z];
shang=1;xia=1;zuo=1;you=1;
%预处理数据库,要求图片黑底白色数字
for s=0:9
for t=0:geshu-1
q=im2double(imread(strcat('E:\MATLAB\',num2str(s),'_', num2str(t),'.jpg')));
q=im2bw(q,0.1);
[heng,zong]=size(q);
hs=sum(q);
hs0=sum(q,2); %这里表示行之和,这时应该是竖着写了两个数字及其以上,除了那种奇葩写得贼长那种
hs1=hs0'; %将行之和转置
while(hs1(xia)==0&&xia
xia=xia+1;
end
shang=xia;
while(hs1(shang)>0&&shang
shang=shang+1;
end
while(hs(zuo)==0&&zuo
zuo=zuo+1;
end
you=zuo;
while(hs(you)>0&&you
you=you+1;
end
q=q(xia:shang,zuo:you);
q=imresize(q,picSize);
u=[u,q];
shang=1;xia=1;zuo=1;you=1;
end
end
d=[];
%打开摄像头
obj = videoinput('winvideo',1,'MJPG_640x480');
h=preview(obj);
start(obj);
figure;
while ishandle(h)
frame = getsnapshot(obj); % 获取帧
%图像增强
% h=ones(5,5)/25; %过滤器h
% I=imfilter(I,h);%真彩色增强
% figure('name','真彩色增强');imshow(I);title('真彩色增强');
I1=rgb2gray(frame); % RGB图像转灰度图像
I1=imadjust(I1,[0.3,0.7],[]);
I1=medfilt2(I1);
% figure,imshow(I1);title('中值滤波');
%边缘检测:sobel,roberts,canny,prewitt等
I2=edge(I1,'roberts',0.25,'both'); %边缘检测算法,强度小于阈值0.15的边缘被省略掉,'both'两个方向检测(缺省默认)
% figure('name','边缘检测'),imshow(I2);title('robert算子边缘检测')
se=[1];
I3=imerode(I2,se);% 腐蚀Imerode(X,SE).其中X是待处理的图像,SE是结构元素对象
% figure('name','腐蚀后图像'),imshow(I3);title('腐蚀后的图像');
se=strel('rectangle',[30,30]);% 25X25的矩形 strel???
I4=imclose(I3,se);% 用25*25的矩形对图像进行闭运算(先膨胀后腐蚀)有平滑边界作用
% figure('name','平滑处理'),imshow(I4);title('平滑图像的轮廓');
I5=bwareaopen(I4,800);% 从二进制图像中移除所有少于2000像素的连接对象,消失的是连续的白色像素数量少于2000的字符
% figure('name','移除小对象'),imshow(I5);title('从对象中移除小对象');
%裁剪程序
[r,c]=find(I5);%找出I5中即只剩下数字的图里白元素所在行列,r记录行,c记录列
nextresult=I5(min(r) :max(r),min(c):max(c));
subplot(121),imshow(nextresult);title('抓取的数字图');
cj1=min(r) ;%记录裁剪尺寸
cj2=max(r);
cj3=min(c);
cj4=max(c);
[g,w]=size(nextresult);
[splitfs,points]=shuziqiege(nextresult,r,c,g,w);
xs=[splitfs,points];
dechushuzi=[];
jishu0=zeros(1,geshu);jishu1=ones(1,geshu);jishu2=ones(1,geshu)*2;jishu3=ones(1,geshu)*3;jishu4=ones(1,geshu)*4;jishu5=ones(1,geshu)*5;
jishu6=ones(1,geshu)*6;jishu7=ones(1,geshu)*7;jishu8=ones(1,geshu)*8;jishu9=ones(1,geshu)*9;
jishuqi=[jishu0,jishu1,jishu2,jishu3,jishu4,jishu5,jishu6,jishu7,jishu8,jishu9];
x=1;
for m_520=1:size(xs,2)-1
p=xs{m_520};
p=imresize(p,picSize);
for n_520=1:zongshu
nn=(n_520-1)*z+1;
ff=n_520*z;
d=u(1:y,nn:ff); %取识别库一张图所化为的矩阵
matchrs(n_520)=corr2(p,d);
end
[~,k]=max(matchrs);
dechushuzi(x)=jishuqi(k);
% lastresult=strcat(lastresult, fonts(k));
x=x+1;
end
x=1;
%开始标记
label_str = ['The number is: ' num2str(dechushuzi,'%d') ''];
cj5=cj2-cj1;
cj6=cj4-cj3;
cj=[cj3 cj1 cj6 cj5];
rgb = insertObjectAnnotation(frame, 'rectangle', cj, label_str,'textboxopacity', 0.9, 'fontsize', 18,'color','r');
subplot(122),imshow(rgb),title('数字识别系统');
drawnow
end
MATLAB错误指令.PNG
(22.82 KB, 下载次数: 0)
2020-11-6 16:41 上传
matlab图片数据库读取,MATLAB无法读取图像数据库问题相关推荐
- matlab图片矢量化,matlab图形矢量化解决方案
大致思路:matlab中生成矢量格式文件-导入Visio中-编辑-导出合适格式-在其他软件中使用 准备工具 Matlab 2014b或更高版本 Visio 2007或更高版本 我查看过,Matlab能 ...
- matlab图片连续显示,Matlab利用定时器连续显示图片的问题
是不是因为我用的版本太低呢 我用的是2007版的. % 开始播放按钮 function start_Callback(hObject, eventdata, handles) global filen ...
- matlab有数据库吗,Matlab数据库的基本知识
数据库根据数据组织方式的不同而有不同的类型,较常见的包括网络模型数据库.分层结构数据库以及关系型数据库. 关系型数据库是目前最流行的数据库,可用现代数学理论和方法对数据进行处理,他提供了结构化查询语言 ...
- matlab修改图像分辨率_[转载]Matlab图片保存指定分辨率(图片dpi设置)
登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 haobang008 于 2016-7-19 14:38 编辑 先附上效果对比,第一张图是300dpi设置 ...
- matlab读取时间数据,Matlab有关数据库读取及时间项的设定
Matlab有关数据库的读取需下载mysql-connector-java-5.1.26-bin.jar文件放到指定位置,并修改classpath.txt相关文件,具体可网上自行查找. 看一下实例: ...
- 在Python中读取MATLAB的数据文件
简 介: 本文测试了几种通过python直接读取MATLAB的**.MAT格式的数据文件,有些方法经过测试发现无法完成.而通过mat4py可以比较方便的读取MATLAB中的数据文件.利用手边已有的用于 ...
- python读取matlab数据_详解如何在python中读写和存储matlab的数据文件(*.mat)
背景 在做deeplearning过程中,使用caffe的框架,一般使用matlab来处理图片(matlab处理图片相对简单,高效),用python来生成需要的lmdb文件以及做test产生结果.所以 ...
- MATLAB图像基本操作(信息查询/文件读取/写入/显示)
本博文主要讲解matlab下的图像基本操作,图片使用下方的一张图片,只需要右击收藏就行了.给出讲解内容有: 文章目录 1.图像信息查询 1.1语法格式 1.2 案例1 2.图像文件读取 2.1 语法格 ...
- 图像的灰度化灰度值的读取Matlab
matlab中图像的灰度化: H = imread('test.png'); I = rgb2gray(H); 原图和灰度图: 在matlab工作区选取灰度矩阵I,即可得到图像详细的灰度值矩阵 图片上 ...
- matlab提excel文字,matlab读取excel文字
数据导入| 将excel数据导入matlab_计算机软件及应用_IT/计算机_专业资料.将 excel 数据导入 matlab 一. 将 excel 文本放在 matlab 的 work 文件夹里面. ...
最新文章
- 【OF框架】使用OF.WinService项目,添加定时服务,进行创建启动停止删除服务操作...
- 【自动驾驶】8. MDC通信架构 + DDS + SOME/IP
- 大学 University
- unicode_literals导致的UnicodeEncodeError
- java中断一个线程
- python商品评论分析_NLP实战:用主题建模分析网购评论(附Python代码)
- 开发者入门,这几款小工具能让你事半功倍
- win7将 esc与 capslock 互换
- oracle数据库的拼接字符串,Oracle数据库拼接字符串
- VSCode - Beautify 插件配置
- linux+shell+解压命令,linux shell解压命令
- ECS主动运维事件--让你HOLD住全场 (二)
- vue-pdf的使用
- 高级计量经济学及stata应用 学习笔记③ 长面板
- “熊孩子”乱敲键盘攻破 Linux 桌面;苹果开源代码被发现包含兼容微信的代码;网传蚂蚁启用OKR替代KPI | EA周报...
- 什么是Apache Isis
- Kettle Carte集群关闭问题
- 演讲培训——荣耀时刻
- python3爬虫实战(一)爬取创业邦创投库
- 怎样煮鸡蛋才能让鸡蛋熟且不破