本帖最后由 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无法读取图像数据库问题相关推荐

  1. matlab图片矢量化,matlab图形矢量化解决方案

    大致思路:matlab中生成矢量格式文件-导入Visio中-编辑-导出合适格式-在其他软件中使用 准备工具 Matlab 2014b或更高版本 Visio 2007或更高版本 我查看过,Matlab能 ...

  2. matlab图片连续显示,Matlab利用定时器连续显示图片的问题

    是不是因为我用的版本太低呢 我用的是2007版的. % 开始播放按钮 function start_Callback(hObject, eventdata, handles) global filen ...

  3. matlab有数据库吗,Matlab数据库的基本知识

    数据库根据数据组织方式的不同而有不同的类型,较常见的包括网络模型数据库.分层结构数据库以及关系型数据库. 关系型数据库是目前最流行的数据库,可用现代数学理论和方法对数据进行处理,他提供了结构化查询语言 ...

  4. matlab修改图像分辨率_[转载]Matlab图片保存指定分辨率(图片dpi设置)

    登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 haobang008 于 2016-7-19 14:38 编辑 先附上效果对比,第一张图是300dpi设置 ...

  5. matlab读取时间数据,Matlab有关数据库读取及时间项的设定

    Matlab有关数据库的读取需下载mysql-connector-java-5.1.26-bin.jar文件放到指定位置,并修改classpath.txt相关文件,具体可网上自行查找. 看一下实例: ...

  6. 在Python中读取MATLAB的数据文件

    简 介: 本文测试了几种通过python直接读取MATLAB的**.MAT格式的数据文件,有些方法经过测试发现无法完成.而通过mat4py可以比较方便的读取MATLAB中的数据文件.利用手边已有的用于 ...

  7. python读取matlab数据_详解如何在python中读写和存储matlab的数据文件(*.mat)

    背景 在做deeplearning过程中,使用caffe的框架,一般使用matlab来处理图片(matlab处理图片相对简单,高效),用python来生成需要的lmdb文件以及做test产生结果.所以 ...

  8. MATLAB图像基本操作(信息查询/文件读取/写入/显示)

    本博文主要讲解matlab下的图像基本操作,图片使用下方的一张图片,只需要右击收藏就行了.给出讲解内容有: 文章目录 1.图像信息查询 1.1语法格式 1.2 案例1 2.图像文件读取 2.1 语法格 ...

  9. 图像的灰度化灰度值的读取Matlab

    matlab中图像的灰度化: H = imread('test.png'); I = rgb2gray(H); 原图和灰度图: 在matlab工作区选取灰度矩阵I,即可得到图像详细的灰度值矩阵 图片上 ...

  10. matlab提excel文字,matlab读取excel文字

    数据导入| 将excel数据导入matlab_计算机软件及应用_IT/计算机_专业资料.将 excel 数据导入 matlab 一. 将 excel 文本放在 matlab 的 work 文件夹里面. ...

最新文章

  1. 【OF框架】使用OF.WinService项目,添加定时服务,进行创建启动停止删除服务操作...
  2. 【自动驾驶】8. MDC通信架构 + DDS + SOME/IP
  3. 大学 University
  4. unicode_literals导致的UnicodeEncodeError
  5. java中断一个线程
  6. python商品评论分析_NLP实战:用主题建模分析网购评论(附Python代码)
  7. 开发者入门,这几款小工具能让你事半功倍
  8. win7将 esc与 capslock 互换
  9. oracle数据库的拼接字符串,Oracle数据库拼接字符串
  10. VSCode - Beautify 插件配置
  11. linux+shell+解压命令,linux shell解压命令
  12. ECS主动运维事件--让你HOLD住全场 (二)
  13. vue-pdf的使用
  14. 高级计量经济学及stata应用 学习笔记③ 长面板
  15. “熊孩子”乱敲键盘攻破 Linux 桌面;苹果开源代码被发现包含兼容微信的代码;网传蚂蚁启用OKR替代KPI | EA周报...
  16. 什么是Apache Isis
  17. Kettle Carte集群关闭问题
  18. 演讲培训——荣耀时刻
  19. python3爬虫实战(一)爬取创业邦创投库
  20. 怎样煮鸡蛋才能让鸡蛋熟且不破

热门文章

  1. LayaBox---Dialog弹窗
  2. java字符串练习题_java练习题——字符串
  3. php微信卡劵教程,微信卡券添加功能的实现-PHP
  4. web前端开发面试题(二)
  5. 仿豆丁flashpaper 网页flash文档播放调用文档资料收集
  6. 施耐德驱动器维修ELAU控制器维修C400C600
  7. 动态申请空间 malloc函数
  8. python海龟画图(6)多边形(3)圆内接多边形
  9. 事业单位资产管理系统解决方案:国有资产全生命周期管理监管体系
  10. 单台服务器部署桌面虚拟化,桌面虚拟化部署最重要的一个环节?!