【数图大作业】基于模板匹配的文字识别(一)(思路+实现要点+预处理分析)

本文涉及的产品
企业资质识别,企业资质识别 200次/月
票证核验,票证核验 50次/账号
OCR统一识别,每月200次
简介: 【数图大作业】基于模板匹配的文字识别(一)(思路+实现要点+预处理分析)

数图大作业我们组选了基于模板匹配的文字识别这个题目。老师提供了多行文字行列分割参考程序(CVI 5.0),我参照了例程的思路,在CVI2012环境下完成了预处理、行列分割以及模板匹配算法设计和代码编程。


题目要求


首先建立一个常用的汉字标准样本图像库:

(1)利用“画图”程序建立200-300个字的汉字图库,将单个汉字的图像保存为 .bmp 文件;

(2)将所有的样本图像均缩放为标准尺寸图像,例如 48 * 64 (width * height)。

(3)将所有的样本图像变为二值图像,构成标准汉字模板库。

利用“画图”程序制作包含多个汉字的测试图像。

编写字符识别程序,采用基于模板匹配的方法完成对汉字的识别:

(1)对测试图像进行二值化;

(2)完成行、列分割;

(3)将单个汉字图像与模板库中的字符图像逐一匹配,完成识别;

对多幅类似图像进行验证试验;

界面友好,操作方便,能单步演示识别过程,也可以“一键运行”,识别速度较快。

注:本次大作业在 CVI2012 环境下完成,利用 IMAQ6.0 库完成图像处理,如果采用其他图像处理库比如 opencv、halcon 等等,可以参考处理思路。


思路




最终效果展示


演示视频


实现要点和预处理分析


1.模板图像和测试图像均由“画图”程序裁剪而成,注意模板图像和测试图像需要缩放至同一尺寸,方便进行匹配,这部分可以用 imaqResample 函数来完成。例如:

将 splitImage 图片缩放成 60 * 60 的大小,并保存至 dstImage 。

为了防止切割到汉字,可以先进行列分割和行分割,再进行缩放。


imaqResample (dstImage, splitImage, 60, 60, IMAQ_ZERO_ORDER, IMAQ_NO_RECT);


2.为了方便后面的行列分割,图像预处理部分需要完成输入的测试图像的二值化和反色,经过二值化后的图像灰度值仅有 0 和 255 ,经过反色处理后白色像素点变成黑色像素点,即灰度值从 255 变成 0。二值化可以用 imaqThreshold 函数完成,反色可以用 imaqNor 函数完成。

二值化和反色处理代码如下:


imaqThreshold(binImage, srcImage, 100, 255, TRUE, 255); 
// 二值化:灰度值如果超过100,则替换为255,否则为0
imaqNor(binImage, binImage, binImage);  
// 反色:或非运算,第一个参数是输出图像,后面两个是参与运算的输入图像


除了测试图像需要进行二值化处理,模板图像也要进行二值化处理。


3.行列分割均可以根据像素值来分割,对于白底黑字的图片来说,逐行逐列扫描,检测到黑色像素即可确定存在汉字或标点符号。

但要注意列分割必须对每一行进行,不能进行全局列分割。意思是,先逐行分析,然后行扫描,最后列扫描,而不能直接进行行扫描和列扫描,因为每列文字有可能对不齐。


4.模板匹配除了要完成文字识别,还要完成标点符号以及空格的识别。


5.一键运行功能的实现可以通过在 .uir 文件创建一个按钮,在按钮的回调函数中,调用行列分割以及模板匹配的函数。


GUI界面



功能键包括:


打开一幅图像

行分割

列分割

保存分割图像

匹配输出

一键运行(行分割+列分割+匹配输出)

退出


相关文章
|
机器学习/深度学习 文字识别 算法
【OCR学习笔记】2、OCR图像预处理(上)
【OCR学习笔记】2、OCR图像预处理(上)
1162 0
|
7月前
|
文字识别
印刷文字识别使用问题之自定义模板功能在什么地方
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
7月前
|
文字识别 自然语言处理 算法
印刷文字识别使用问题之如何选择模板
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
7月前
|
文字识别 算法
印刷文字识别使用问题之怎么实现作业自动批改
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
9月前
|
文字识别
印刷文字识别产品使用合集之在自定义模板中,时间总是被错误地识别如何解决
印刷文字识别(Optical Character Recognition, OCR)技术能够将图片、扫描文档或 PDF 中的印刷文字转化为可编辑和可搜索的数据。这项技术广泛应用于多个领域,以提高工作效率、促进信息数字化。以下是一些印刷文字识别产品使用的典型场景合集。
|
存储 文字识别 算法
基于OCR模板匹配的手写英文字母数字识别matlab仿真
基于OCR模板匹配的手写英文字母数字识别matlab仿真
298 0
基于OCR模板匹配的手写英文字母数字识别matlab仿真
|
文字识别
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
|
机器学习/深度学习 编解码 文字识别
【OCR学习笔记】3、OCR图像预处理之Python原生实现算法(中)
【OCR学习笔记】3、OCR图像预处理之Python原生实现算法(中)
551 0
|
文字识别
【数图大作业】基于模板匹配的文字识别(三)(空格识别+模板匹配)
【数图大作业】基于模板匹配的文字识别(三)(空格识别+模板匹配)
|
机器学习/深度学习 存储 人工智能
宜信OCR技术探索之版面分析业务实践|技术沙龙直播速记
本次我们主要结合图像识别领域文字排版方面的技术进行展开, 从抽象行列识别、模板分析,以及结构化三个方面结合落地场景给大家提供崭新的实践思路。
宜信OCR技术探索之版面分析业务实践|技术沙龙直播速记

热门文章

最新文章