其他分享
首页 > 其他分享> > MATLAB_9-模式识别笔记

MATLAB_9-模式识别笔记

作者:互联网

资源链接:https://download.csdn.net/download/weixin_42859280/11216742

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}

matlab中cell类型怎么使用

 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