[fn,pn,fi]=uigetfile('AD.jpg','选择图片');

I=imread([pn fn]);

figure,

imshow(I);

title('原始图像');

Im1=rgb2gray(I);

figure(2),

subplot(1,2,1),

imshow(Im1);

title('灰度图');

figure(2),

subplot(1,2,2),

imhist(Im1);

title('灰度图的直方图');

Tiao=imadjust(Im1,[0.19,0.78],[0,1]);

figure(3),

subplot(1,2,1),

imshow(Tiao);

title('增强灰度图');

figure(3),

subplot(1,2,2),

imhist(Tiao);

title('增强灰度图的直方图');

Im2=edge(Im1,'sobel',0.15,'both');

figure(4),

imshow(Im2);

title('sobel算子实现边缘检测')

se=[1;1;1;];

Im3=imerode(Im2,se);

figure(5),

imshow(Im3);

title('腐蚀效果图');

se=strel('rectangle',[25,25]);

Im4=imclose(Im3,se);

figure(6),

imshow(Im4);

title('平滑图像的轮廓');

Im5=bwareaopen(Im4,2000);

figure(7),

imshow(Im5);

title('移除小对象');

[y,x,z]=size(Im5);

Im6=double(Im5);

Blue_y=zeros(y,1);

for i=1:y

for j=1:x

if(Im6(i,j,1)==1)

Blue_y(i,1)=Blue_y(i,1)+1;

end

end

end

[temp MaxY]=max(Blue_y);

PY1=MaxY;

while((Blue_y(PY1,1)>=5)&&(PY1>1))

PY1=PY1-1;

end

PY2=MaxY;

while((Blue_y(PY2,1)>=5)&&(PY2

PY2=PY2+1;

end

IY=I(PY1:PY2,:,:);

Blue_x=zeros(1,x);

for j=1:x

for i=PY1:PY2

if(Im6(i,j,1)==1)

Blue_x(1,j)=Blue_x(1,j)+1;

end

end

end

PX1=1;

while((Blue_x(1,PX1)<3)&&(PX1

PX1=PX1+1;

end

PX2=x;

while((Blue_x(1,PX2)<3)&&(PX2>PX1))

PX2=PX2-1;

end

PX1=PX1-1;

PX2=PX2+1;

dw=I(PY1:PY2-6,PX1:PX2,:);

figure(8),

subplot(1,2,1),

imshow(IY),

title('垂直方向合理区域');

figure(8),

subplot(1,2,2),

imshow(dw),

title('定位剪切后的彩色车牌图像')

imwrite(dw,'dw.jpg');

a=imread('dw.jpg');

b=rgb2gray(a);

imwrite(b,'车牌灰度图像.jpg');

figure(9);

subplot(3,2,1),

imshow(b),

title('1.车牌灰度图像')

g_max=double(max(max(b)));

g_min=double(min(min(b)));

T=round(g_max-(g_max-g_min)/3);

[m,n]=size(b);

d=(double(b)>=T);

imwrite(d,'车牌二值图像.jpg');

figure(9)

subplot(3,2,2),

imshow(d),

title('2.车牌二值图像')

figure(9)

subplot(3,2,3),

imshow(d),

title('3.均值滤波前')

h=fspecial('average',3);

d=im2bw(round(filter2(h,d)));

imwrite(d,'均值滤波后.jpg');

figure(9)

subplot(3,2,4),

imshow(d),

title('4.均值滤波后')

se=eye(2);

[m,n]=size(d);

if bwarea(d)/m/n>=0.365

d=imerode(d,se);

elseif bwarea(d)/m/n<=0.235

d=imdilate(d,se);

end

imwrite(d,'膨胀或腐蚀后处理后.jpg');

figure(9)

subplot(3,2,5),

imshow(d),

title('5.膨胀或腐蚀后处理后')

d=QieGe(d);

[m,n]=size(d);

k1=1;k2=1;s=sum(d);j=1;

while j~=n

while s(j)==0;

j=j+1;

end

k1=j;

while s(j)~=0&&j<=n-1

j=j+1;

end

k2=j-1;

if k2-k1>=round(n/6.5)

[val,num]=min(sum(d(:,[k1+5:k2-5])));

d(:,k1+num+5)=0;

end

end

d=QieGe(d);

y1=10;y2=0.25;flag=0;word1=[];

while flag==0

[m,n]=size(d);

left=1;wide=0;

while sum(d(:,wide+1))~=0

wide=wide+1;

end

if wide

d(:,[1:wide])=0;

d=QieGe(d);

else

temp=QieGe(imcrop(d,[1 1 wide m]));

[m,n]=size(temp);

all=sum(sum(temp));

two_thirds=sum(sum(temp(round(m/3):2*round(m/3),:)));

if two_thirds/all>2

flag=1;word1=temp;

end

d(:,1:wide)=0;d=QieGe(d);

end

end

[word2,d]=FenGe(d);

[word3,d]=FenGe(d);

[word4,d]=FenGe(d);

[word5,d]=FenGe(d);

[word6,d]=FenGe(d);

[word7,d]=FenGe(d);

word1=imresize(word1,[40 20]);

word2=imresize(word2,[40 20]);

word3=imresize(word3,[40 20]);

word4=imresize(word4,[40 20]);

word5=imresize(word5,[40 20]);

word6=imresize(word6,[40 20]);

word7=imresize(word7,[40 20]);

figure

subplot(2,7,1),

imshow(word1),

title('1');

subplot(2,7,2),

imshow(word2),

title('2');

subplot(2,7,3),

imshow(word3),

title('3');

subplot(2,7,4),

imshow(word4),

title('4');

subplot(2,7,5),

imshow(word5),

title('5');

subplot(2,7,6),

imshow(word6),

title('6');

subplot(2,7,7),

imshow(word7),

title('7');

imwrite(word,'1.jpg');

imwrite(word,'2.jpg');

imwrite(word,'3.jpg');

imwrite(word,'4.jpg');

imwrite(word,'5.jpg');

imwrite(word,'6.jpg');

imwrite(word,'7.jpg');

liccode=char('0':'9''A':'Z''京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼渝川贵云藏陕甘青宁新');

l=1;

for I=1:7

ii=int2str(I);

t=imread([ii,'.jpg']);

SegBw2=imresize(t,[40,20],'nearest');

if 1==1

kmin=37;

kmax=40;

elseif 1>=2&&1<=3

kmin=11;

kmax=36;

elseif 1>=4&1<=7

kmin=1;

kmax=10;

end

for k2=kmin:kmax

fname=stract('字符模板|',liccode(k2),'.jpg');

SamBw2=imread(fname);

Dm=0;

for k1=1:40

for11=1:20;

if SegBw2(k1,11)==SamBw2(k1,11)

Dm=Dm+1;

end

end

end

Error(k2)=Dm;

end

Error1=Error(kmin:kmax);

MinError=max(Error1);

findc=find(Error1==MinError);

Resault(1*2-1)=liccode(find(1)+kmin-1);

Resault(1*2)='';

l=1+1;

t=toc;

Resault;

mesgbox(Resault,'识别结果')

fid=fopen('Data.xls','a+');

fprintf(fid,'%s|r|n',Resault,datestr(now));

fclose(fid);

索引超出矩阵维度。

出错 main (line 152)

while sum(d(:,wide+1))~=0

DZ.jpg

(188.91 KB, 下载次数: 0)

2020-5-11 15:42 上传

2020-5-11 15:41 上传

点击文件名下载附件

571 Bytes, 下载次数: 6

自定义函数

2020-5-11 15:41 上传

点击文件名下载附件

365 Bytes, 下载次数: 7

自定义函数2

2020-5-11 15:41 上传

点击文件名下载附件

5.01 KB, 下载次数: 4

主函数

matlab车牌识别毕设论文,MATLAB小白一个,毕设做一个基于MATLAB的车牌识别系统,出现索引超出矩阵维度的错误。主函数和自定义函数都写出来了(书上找的),希望大神帮助...相关推荐

  1. MATLAB索引超出矩阵维度,求大神指点错误!

    MATLAB索引超出矩阵维度,求大神指点错误! MATLAB索引超出矩阵维度,求大神指点错误! 最近在做k均值动态聚类的时候,matlab提示索引超出矩阵维度,不知道问题出在哪了. 代码 N1 = 5 ...

  2. MATLAB中出现 索引超出矩阵维度,程序用matlab运行显示索引超出矩阵维度,请问怎么...

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:程序用matlab运行显示索引超出矩阵维度,请问怎么改?回答:用size函数可以求矩阵维数,用reshape可以改变数据维数. 如: ...

  3. matlab超出所有矩阵维度,matlab中索引超出矩阵维度

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:matlab中索引超出矩阵维度?回答:beta=4; % beta 是一个常量 beta(alpha,beta) % beta 不是 ...

  4. matlab提示“下标索引必须为正整数类型或逻辑类型”或“索引超出矩阵维度”

    data = [1 2 3;1 3 2;2 4 1;3 4 1;4 5 2;6 2 1]; F=zeros(6);%矩阵的大小为M %生成邻接矩阵 ss=length(data(:,1)); for ...

  5. matlab中索引超过维度,索引超出矩阵维度怎么解决?

    索引超出矩阵维度. 出错 reduceEI (line 3) if any(M(1,:)) 出错 EIsum (line 4) f=reduceEI([[zeros(max(Msize(1),Nsiz ...

  6. 问题记录:matlab三维重建“索引超出矩阵维度。”

    问题描述: 用matlab标定及三维重建程序对C:\Program Files\MATLAB\R2014a\toolbox\vision\visiondemos\calibration\stereo文 ...

  7. matlab 矩阵维度受限,matlab中变量问题——readonly 索引超出矩阵维度 workspacefunc 215...

    matlab程序运行过程中会出现如上提示,在网上检索未果,键入dbstop if error语句也无法定错误之处,就想这个错误不是一般的错误. 通过间隔打断点的方式最后定位错误为一句exist = f ...

  8. MATLAB 索引超出矩阵维度【求助】

    在科研过程中遇到的问题: 新手小白实在是没有思路,能尝试的办法都试过了呜呜呜呜~恳请各路大神伸出援手,小子不胜感激. 相关代码如下图: 完整代码地址:https://github.com/qmzhen ...

  9. MATLAB中出现 索引超出矩阵维度,老是提示索引超出矩阵维度,求大神指导

    function main clear L=32;%基底尺寸的设定: step1=500;%生长层数的设定, niu=1;deltt=0.05;deltx=1;dd=16;aa=(2*dd/deltx ...

最新文章

  1. LintCode-375.克隆二叉树
  2. 第三次学JAVA再学不好就吃翔(part87)--Arrays工具类的asList方法
  3. 一张图搞清楚Java异常机制
  4. 经常需要在开发中使用Excel COM,为简化使用写了这个类,感觉还是不太方便
  5. 不等待输入_明明显示“对方正在输入”却总等不来回复,其实是你误解了
  6. 数据集如何影响作物病害识别的有效性
  7. 【技巧】LeetCode 86. Partition List
  8. Oracle Sql关于case-when,if-then,decode
  9. JAVA中整型常量的长度_以下的 能正确表示Java语言中的一个整型常量。_学小易找答案...
  10. [2]Selenium学习系列---- FirePath的安装和使用
  11. C# 创建基于TCP、HTTP协议的JsonRpc 2.0(可跨平台、跨语言)
  12. 【知乎热议】如何看待Momenta研发总监任少卿去了蔚来汽车?
  13. 土方工程量计算表格excel_市政道路土方excel计算表(含公式)
  14. [NOTE] Pikachu靶场练习笔记
  15. 第四届高教杯计算机绘图教程,第三届“高教杯”机械类计算机绘图试卷(三维).pdf...
  16. iOS 手机淘宝 自动创建一个人的群聊 实现源码 hook 代码源码
  17. 大数据入门级学习攻略
  18. 利用卷积神经网络实现手写字识别
  19. uni-app学习笔记之判断当前用户是否拥有某角色和权限
  20. FileWriter学习

热门文章

  1. 肱动脉穿刺技术并发症,预防,护理
  2. Spring参数解析器
  3. Donald Knuth(高德纳)
  4. 程序员该如何爱惜身体?
  5. edger多组差异性分析_edger差异分析,如何查询分组差异的结果
  6. WireMock 模拟接口
  7. 微信公众号 Jssdk调用错误码:63002, 获取access_token错误代码 errcode 40164的解决方法,如何解决,微信公众号的坑。
  8. linux系统arp绑定,linux 下arp 地址绑定
  9. 2W字 0-1 讲解数仓(附软硬件架构图)(建议收藏)
  10. 程矢Axure夜话:中继器系列视频教程之中继器表格搜索