1,识别单独字符的:
思想:
picsize=[20,10];创建一个矩阵,将两个照片整理成大小一致的。
具体就是使用后面的:a=imresize(a,picsize);
fonts='ABCDEFGHNVJXSMQ';建立字符串用于匹配输出(就是识别的功能!)
下面一个for循环,依次匹配。
找到相似程度最大的下标(corr2(),就是用来匹配两个照片的相似程度的!)
[~,k]=max(rs):前面是记录相似的最大数值。后面是记录坐标的!
fonts(k)输出字符串相应位置的数据!
代码:
clc,clear,close all;
a=imread('n.bmp');
picsize=[20,10];
a=imresize(a,picsize);
fonts='ABCDEFGHNVJXSMQ';
for i=1:15
b=imread(strcat('pic\',int2str(i),'.bmp'));
b=imresize(b,picsize);
rs(i)=corr2(a,b);
end
[~,k]=max(rs)
fonts(k)
截图:
2,识别整体车牌的:
思想:
先看看JPG和BMP的区别:【必须要转换为二值图!因为函数定义就是在二值图的基础上的!】
x=getSplitPic(a);分割车牌的函数:(分割为7个部分!)
a=x{m};与a=x(m)的区别:
一个是简要版本的,另外一个是详细一点的:是CELL类型。
要引用里面的数据只要在大括号里写上对应的下标即可,如:B{1}
x(1):
x{1}:
像strcat(),int2str().类比Python里面的字符拼接就行啦!
代码:
clear,clc,close all;
% a=imread('car.jpg');
a=im2bw(imread('car.jpg'));
x=getSplitPic(a);
keys='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ京浙苏豫辽陕鲁';
picsize=[20,10];
result='所识别照片的车牌为:';
for m=1:size(x,2)
a=x{m};
a=imresize(a,picsize);
for i=1:43
b=imread(strcat('temp\',int2str(i),'.jpg'));
b=imresize(b,picsize);
rs(i)=corr2(a,b);
end
[~,k]=max(rs);
result=strcat(result,keys(k));
end
result
截图:
OK!
标签:picsize,rs,模式识别,fonts,strcat,笔记,MATLAB,imread,imresize
来源: https://blog.csdn.net/weixin_42859280/article/details/90697182