• 【汉字识别】基于模板匹配实现汉字精准识别附Matlab代码


    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

    🍎个人主页:Matlab科研工作室

    🍊个人信条:格物致知。

    更多Matlab仿真内容点击👇

    智能优化算法  神经网络预测 雷达通信  无线传感器

    信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

    ⛄ 内容介绍

    为实现对集装箱箱号的正确识别,提出一种基于模板匹配和特征匹配的识别算法.对采集到的汉字图像进行预处理,得到改善后的汉字二值化图像;采用数学形态学操作使字符域连通,计算字符连通域的宽高比得到汉字区域;利用投影检测方法实现对汉字字符的分割;运用模板匹配算法与特征匹配算法相结合的分类方法对汉字字符进行识别.该算法用MATLAB进行编程,完成对汉字的自动定位、分割和识别.

    ⛄ 部分代码

    function [PY2,PY1,PX2,PX1]=chepai_fenge(I5)

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

    myI=double(I5);

    %begin横向扫描

    tic

    Y_threshlow=5; %这个数值很重要。决定了提取的彩图的质量

    X_firrectify=5;

    %=== Y 方向===从左向右寻找第一个1值像素大于5的坐标为水平方向左侧分界线,从优向左寻找到第一个1值像素量大于5的为右侧分界线

    Blue_y=zeros(y,1);

    for i=1:y

        for j=1:x

            if(myI(i,j,1)==1)%如果myI(i,j,1)即myI图像中坐标为(i,j)的点为白色

             %则Blue_y的相应行的元素white_y(i,1)值加1

               Blue_y(i,1)= Blue_y(i,1)+1;     % 蓝色象素点统计                    

            end  

        end       

    end

            [temp MaxY]=max(Blue_y);% Y方向车牌区域确定 temp(最多点数):所有行中,最多的累积像素点 MaxY(最多点所在行):该行中蓝点最多

             PY1=MaxY;%有最多蓝点的行付给PY1

            while ((Blue_y(PY1,1)>=Y_threshlow)&&(PY1>1))%找到图片上边界

                PY1=PY1-1;

            end 

           

            %PY1:存储车牌上边界值

            PY2=MaxY;

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

                 PY2=PY2+1;

            end

           PY1, PY2 %原始图像I中截取的纵坐标在PY1:PY2之间的部分

       % figure(1),imshow(Blue_y),title('y方向确定');

        pause(2);

        %==============X 方向===============================

            X_threshhigh=(PY2-PY1)/11;%这个数值很重要。决定了提取的彩图的质量,适当提高可抗干扰,但是小图会照成剪裁太多

            Blue_x=zeros(1,x);             % 进一步确定X方向的车牌区域

            for j=1:x

                for i=PY1:PY2

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

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

                    end  

                end       

            end

            [temp MaxX]=max(Blue_x);

            PX1=MaxX-6*(PY2-PY1);

            if  PX1<=1

                PX1=1;

            end

            while ((Blue_x(1,PX1)<=X_threshhigh)&&(PX1

                  PX1=PX1+1;

            end               %确定出X方向车牌起点   

            PX2=MaxX+6*(PY2-PY1);

            if  PX2>=x

                PX2=x;

            end

            while ((Blue_x(1,PX2)<=X_threshhigh)&&(PX2>PX1))%阈值

                   PX2=PX2-1;

            end            %确定出X方向车牌终点

            PX1 ,PX2

        % figure(2),imshow(Blue_x),title('X方向确定');    

    ⛄ 运行结果

    ⛄ 参考文献

    [1]谷秋頔, 白艳萍. 基于模板匹配的车牌汉字识别方法及判别函数[J]. 电子科技, 2011, 24(12):3.

    [2]陈超, 牛王强, 杜芃. 基于模板匹配和特征匹配的集装箱箱号识别算法[J]. 上海海事大学学报, 2019, 040(001):65-70.

    ❤️ 关注我领取海量matlab电子书和数学建模资料

    ❤️部分理论引用网络文献,若有侵权联系博主删除

     

  • 相关阅读:
    【C++】C++调python:命令行方式(带参数)
    Qt 多线程实现的两种方式 线程实现
    第5章 - 二阶多智能体系统的协同控制 --> 连续时间系统一致性
    聊聊ElasticeSearch并发写的乐观锁机制
    springboot项目配置多数据库连接
    微信小程序的双向数据绑定和vue的哪里不一样?下拉刷新的方式代码示例
    Gopsutil/Process常用进程监控资源信息
    ptmalloc源码分析 - 多线程争抢竞技场Arena的实现(04)
    Python爬虫抢购某宝秒杀商品
    网络工作面试题库和答案解析
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/127711055