使用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.php#windows

输入 convert -version 验证是否成功



d:\>convert  -version
Version: ImageMagick 6.8.9-4 Q16 x64 2014-06-22 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo freetype jbig jng jp2 jpeg lcms lqr pangocairo png ps rsv
g tiff webp xml zlib

如果命令不能使用把install path加入系统path,以便能调用dll.如D:\Program Files\ocr\ImageMagick-6.8.9-Q16

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

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

convert -compress none ./S16.gif./S16.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 ./S16.gif ./S16.tif

convert.exe:ImageMagick套件的一部分,负责图片格式转换,各个参数的意义如下:

  • -compress none:转换后的图片不要压缩,如果没有加这一项,后续tesseract处理的时候会报错:read_tif_image:Error:Illegal image format:Compression
  • -depth 8:设置转换后图像的色深为8位,也就是bpp为8。如果没有此参数,后果如下:

Tesseract Open Source OCR Engine 
check_legal_image_size:Error:Only 1,2,4,5,6,8 bpp are supported:16 
Segmentation fault

  • -alpha off:在转换后的图像中不要添加alpha图层。如果没有此参数,后果同上。
  • -crop 320x40+0+1:从左上角开始坐标为(0,1)处,裁剪出320*40大小的图像。注意参数里是英文字母x,不是乘号*。
  • 紧跟着就是待转换的图片的文件名,
  • 最后是转换后的图片的文件名。


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

convert  ./S16.tif -scale 600% ./S16B.tif

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

tesseract ./S16B.tif ./S16B -l eng -psm 7

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

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

时间: 2024-10-11 04:40:20

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

转:关于使用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 Gr

【验证码】使用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 安装与训练(图像识别)

代码托管: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,

关于Tesseract的简单训练方法

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