转:关于使用ImageMagick和Tesseract进行简单数字图像识别

据说Tesseract可是世界排名第三的OCR神器,2010年又更新了3.0版本。Tesseract原先是HP写的,现在Open Source了。

下面介绍怎么用Tesseract配合ImageMagick进行简单的数字图像识别。

首先Tesseract只能识别bmp,tif,所以先拿ImageMagick转换一下图像。注意得无压缩转换,否则Tesseract报错。

convert -compress none ./pict.gif./in1.tif

然后将图片灰度化-colorspace Gray,或者直接二值化-monochrome成黑白,这样识别率会高一点。

接下来裁剪出想要进行精确识别的部分:-crop widthxheight+x+y

比如-crop 320x40+0+1,从左上角开始坐标为(0,1)处,裁剪出320*40大小的图像。注意参数里是英文字母x,不是乘号*。

还有就是网上搜到的-depth 8和-alpha off参数,实践表明加不加效果不大。

一步完成就像这样:

convert -compress none-depth 8 -alpha off -crop 535x24+2+2 -monochrome ./pict.gif ./in1.tif

预处理完之后最好再放大一下,这次的样例放大到500%~600%的识别效率就能令人满意。

convert ./in1.tif -scale600% ./in2.tif

然后就可以开始用Tesseract进行识别了。

tesseract ./in2.tif ./1-l eng -psm 7

-l eng是选择语言,-psm 7是说源图像是只在一行上的文字。具体说明看Tesseract的帮助。

下面就是一些实例。

原图如下:

下面是二值化之后的效果,可以看见还是有些噪点的。

下面是灰度化之后的效果。

识别之后的结果是:

05093519038515450004738373775251263J91648J94318529731857

可以看到有些误报,针对这个问题又特殊处理一下误报字符,结果识别率在90%左右

参考资料:

ImageMagick: http://www.imagemagick.org

Tesseract: http://code.google.com/p/tesseract-ocr

时间: 2024-10-24 09:39:21

转:关于使用ImageMagick和Tesseract进行简单数字图像识别的相关文章

使用ImageMagick和Tesseract进行简单数字图像识别

使用ImageMagick和Tesseract进行简单数字图像识别 由于直接使用 tesseract 进行识别,识别率很低, ImageMagick 安装.配置及使用: 平台:winXP 1. 安装ImageMagick(ImageMagick website:http://www.imagemagick.org/script/index.php)     下载并安装ImageMagick. http://www.imagemagick.org/script/binary-releases.ph

【验证码】使用Tesseract实现简单的验证码识别

1.Tesseract介绍: Tesseract的OCR引擎最先由HP实验室于 1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一.然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封. 数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技 术研究所获得,并求诸于Google对Tesseract进行改进.消除Bug.优化工作. 2.下载 Tesseract: http

利用Python进行简单的图像识别(验证码)

这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt文件中 1 #-*-encoding:utf-8-*- 2 import pytesseract 3 from PIL import Image 4 5 class GetImageDate(object): 6 def m(self): 7 image = Image.open(u"C:\\a.p

简单数字拼板游戏学习

VS2010/MFC/对话框程序 MFC练习 1.新建一个矩形类. MoveDown(),MoveUp(),MoveLeft(),MoveRight()是移动的动作.int position是表示该矩形当前的实际位置,按如下布局: 0 1 2 3 4 5 6 7 8 .MoveXXX()函数一是要判断是否可以响应,而是响应后要修改position的值与当前位置匹配. 如MoveUp()函数中,如果该矩形position为0,1,2,则应该不动(此判断也可省,在键盘响应处理中会根据空格所在位置指定

验证码识别 Tesseract的简单使用和总结

Tesseract是什么 OCR即光学字符识别,是指通过电子设备扫描纸上的打印的字符,然后翻译成计算机文字的过程.也就是说通过输入图片,经过识别引擎,去识别图片上的文字.Tesseract是一种适用于各种操作系统的光学字符识别引擎,最早是hp公司的软件,2005年开源,2006年后由google一直赞助Tesseract开发和维护.2006年,Tesseract被认为是当时最准确的开源OCR引擎之一 . 验证码识别类型 这里讨论一般的验证码识别,即英文.数字.或者英文和数字的混合的验证码,不包括

Tesseract:简单的Java光学字符识别

1.1 介绍 开发具有一定价值的符号是人类特有的特征.对于人们来说识别这些符号和理解图片上的文字是非常正常的事情.与计算机那样去抓取文字不同,我们完全是基于视觉的本能去阅读它们. 另一方面,计算机的工作需要具体的和有组织的内容.它们需要数字化的表示,而不是图形化的. 有时候,这是不可能的.有时,我们希望自动化的完成用双手从图像重写文本的任务. 针对这些任务,光学字符识别(OCR)被设计成一种允许计算机以文本形式"阅读"图形化内容的方法,和人类工作的方式相似.虽然这些系统相对准确,但仍然

关于Tesseract的简单训练方法

Tesseract训练方法指导 一.首先,需要将图片转换成TIF格式的,所用到的工具为VietOCR.NET,操作方法为如下几个步骤 打开VietOCR.NET软件,选中菜单栏------>Tools ------> Merge TIFF,将所需要的图片全部选上,然后再选择文件夹保存,命名为你需要的名字,例如TEST.tif 如下图片是自己画的图片 操作图如下: 图1 图2 图3 图4 图5 二.此时,我们需要另外两个软件,才可以做进一步的训练,一个是Tesseract3.0.exe,一个是j

tesseract 安装与训练(图像识别)

代码托管:https://github.com/tesseract-ocr/tesseract 环境:win10 安装版本:tesseract-ocr-setup-3.02.02.exe 基本使用命令: tesseract number.jpg result -l eng -psm 7 训练 下载使用JtessBoxEditor,该工具需要安装java vm运行.1.合并图像将需要识别的图片转换为tif格式,合并到一起.点击tools-->merage tiff-->选中所有图片保存为LAN.

kNN算法python实现和简单数字识别

kNN算法 算法优缺点: 优点:精度高.对异常值不敏感.无输入数据假定 缺点:时间复杂度和空间复杂度都很高 适用数据范围:数值型和标称型 算法的思路: KNN算法(全称K最近邻算法),算法的思想很简单,简单的说就是物以类聚,也就是说我们从一堆已知的训练集中找出k个与目标最靠近的,然后看他们中最多的分类是哪个,就以这个为依据分类. 函数解析: 库函数 tile() 如tile(A,n)就是将A重复n次 a = np.array([0, 1, 2]) np.tile(a, 2) array([0,