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

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

数图大作业我们组选了基于模板匹配的文字识别这个题目。老师提供了多行文字行列分割参考程序(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界面



功能键包括:


打开一幅图像

行分割

列分割

保存分割图像

匹配输出

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

退出


相关文章
|
12月前
|
机器学习/深度学习 文字识别 算法
【OCR学习笔记】2、OCR图像预处理(上)
【OCR学习笔记】2、OCR图像预处理(上)
588 0
|
12月前
|
机器学习/深度学习 编解码 文字识别
【OCR学习笔记】3、OCR图像预处理之Python原生实现算法(中)
【OCR学习笔记】3、OCR图像预处理之Python原生实现算法(中)
325 0
|
文字识别
【数图大作业】基于模板匹配的文字识别(三)(空格识别+模板匹配)
【数图大作业】基于模板匹配的文字识别(三)(空格识别+模板匹配)
|
文字识别
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
【数图大作业】基于模板匹配的文字识别(二)(文字行列分割)
|
存储 文字识别 算法
基于OCR模板匹配的手写英文字母数字识别matlab仿真
基于OCR模板匹配的手写英文字母数字识别matlab仿真
229 0
基于OCR模板匹配的手写英文字母数字识别matlab仿真
|
机器学习/深度学习 存储 人工智能
宜信OCR技术探索之版面分析业务实践|技术沙龙直播速记
本次我们主要结合图像识别领域文字排版方面的技术进行展开, 从抽象行列识别、模板分析,以及结构化三个方面结合落地场景给大家提供崭新的实践思路。
宜信OCR技术探索之版面分析业务实践|技术沙龙直播速记
|
人工智能 文字识别 算法
旷视Face++人工智能开放平台上线自定义模板文字识别功能 实用教程看这里
传统OCR对于没有制作对应模板的票据、卡证只能按行返回识别结果,因此容易产生误识与格式错误,增加了数据录入与处理的难度。为了破解传统OCR识别与卡证识别的困局,Face++人工智能开放平台上线自定义模板文字识别功能,通过自助的模板制作,生成识别规则,配合自动分类功能,实现自动化、便捷化的数据获取与录入。
2347 0
|
新零售 人工智能 文字识别
读光OCR-文字识别技术解读与应用案例分析
大数据上云特惠活动系列直播,阿里巴巴高级算法专家永攀对读光OCR-文字识别技术和行业应用进行讲述。OCR的本质是识别图片中的文字,即在复杂的图片背景下中对所需目标文字进行识别提取。主要从OCR商业应用场景、OCR算法和读光产品进行了介绍。展示读光OCR在在文字识别中强大的应用。
11233 0
|
2月前
|
文字识别 容器
文字识别OCR常见问题之本地部署如何解决
文字识别OCR(Optical Character Recognition)技术能够将图片或者扫描件中的文字转换为电子文本。以下是阿里云OCR技术使用中的一些常见问题以及相应的解答。
43 3
|
2月前
|
文字识别 前端开发 API
文字识别OCR常见问题之处理产品图片识别如何解决
文字识别OCR(Optical Character Recognition)技术能够将图片或者扫描件中的文字转换为电子文本。以下是阿里云OCR技术使用中的一些常见问题以及相应的解答。
23 3

热门文章

最新文章