`
san_yun
  • 浏览: 2663249 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

ubuntu安装tesseract 进行OCR识别

    博客分类:
  • ocr
 
阅读更多

之前使用 sudo apt-get install tesseract-ocr 安装的tesseract-ocr有问题,不能使用psm参数。决定手动编译安装。下面参考别人的安装过程。

安装所需的库

复制代码
sudo apt-get install libpng12-dev
sudo apt-get install libjpeg62-dev
sudo apt-get install libtiff4-dev

sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install automake
复制代码

 

pytesser 调用了 tesseract,因此需要安装 tesseract,安装 tesseract 需要安装 leptonica,否则编译tesseract 的时候出现 "configure: error: leptonica not found"。

 

以下都是解压编译安装的老步骤:

./configure
make -j4
sudo make install

 

下载安装leptonica

http://www.leptonica.org/download.html 或者

http://code.google.com/p/leptonica/downloads/list

最新的是leptonica-1.69.tar.bz2

 

下载安装tesseract

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

最新的是 tesseract-ocr-3.02.02.tar.gz

 

下载安装 tesseract 的语言数据包

http://code.google.com/p/tesseract-ocr/downloads/list

最新的是 tesseract-ocr-3.01.eng.tar.gz

解压tessdata目录下的文件(9个)到 "/usr/local/share/tessdata"目录下

注意:这个网址下载到的只有一个,不能用,使用中会报错,http://tesseract-ocr.googlecode.com/files/eng.traineddata.gz

 

下载安装 pytesser

http://code.google.com/p/pytesser/

最新的是 pytesser_v0.0.1.zip 

 

测试pytesser

到pytesser的安装目录,创建一个test.py,python test.py 查看结果。

复制代码
from pytesser import *
#im = Image.open('fnord.tif')
#im = Image.open('phototest.tif')
#im = Image.open('eurotext.tif')
im = Image.open('fonts_test.png')
text = image_to_string(im)
print text
复制代码

tesseract 目录还有其他tif文件,也可以复制过来测试,上面测试的tif,png文件正确识别出文字。

 

pytesser的验证码识别能力较低,只能对规规矩矩不歪不斜数字和字母验证码进行识别。测试了几个网站的验证码,显示 Empty page,看来用它来识别验证码是无望了。

测试发现提高对比度后再识别有助于提高识别准确率。

enhancer = ImageEnhance.Contrast(im)
im = enhancer.enhance(4)

 

错误记录

1.遇到这个错误

$ tesseract foo.png bar
tesseract: error while loading shared libraries: libtesseract_api.so.3 cannot open shared object file: No such file or directory

 

You need to update the cache for the runtime linker. The following should get you up and running:

$ sudo ldconfig

 

2. 使用遇到如下错误

Tesseract Open Source OCR Engine v3.02.02 with Leptonica
Error in findTiffCompression: function not present
Error in pixReadStreamTiff: function not present
Error in pixReadStream: tiff: no pix returned
Error in pixRead: pix not read
Unsupported image type.

坑爹居然是leptonica1.69的bug,参考:https://bugs.mageia.org/show_bug.cgi?id=10411#c4,坑爹的是居然没有找到组新修复版,不得已我使用leptonica-1.68,可以了。

 

安装成功的提示:

yunpeng@yunpeng-duitang:~/下载/tesseract-temp$ tesseract
Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

pagesegmode values are:
0 = Orientation and script detection (OSD) only.
1 = Automatic page segmentation with OSD.
2 = Automatic page segmentation, but no OSD, or OCR
3 = Fully automatic page segmentation, but no OSD. (Default)
4 = Assume a single column of text of variable sizes.
5 = Assume a single uniform block of vertically aligned text.
6 = Assume a single uniform block of text.
7 = Treat the image as a single text line.
8 = Treat the image as a single word.
9 = Treat the image as a single word in a circle.
10 = Treat the image as a single character.
-l lang and/or -psm pagesegmode must occur before anyconfigfile.

Single options:
  -v --version: version info
  --list-langs: list available languages for tesseract engine

 

参考:

http://www.oschina.net/question/54100_59400

http://ubuntuforums.org/showthread.php?p=10248384

====================================================================================

 

使用pytesser遇到问题:
Traceback (most recent call last):
  File "test.py", line 15, in <module>
    pytesser.image_to_string(data)
  File "/home/jose/Documentos/Geek/pytesser.py", line 31, in image_to_string
    call_tesseract(scratch_image_name, scratch_text_name_root)
  File "/home/jose/Documentos/Geek/pytesser.py", line 21, in call_tesseract
    proc = subprocess.Popen(args)
  File "/usr/lib/python2.7/subprocess.py", line 672, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1213, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

参考:http://code.google.com/p/pytesser/issues/detail?id=2

需要安装tesseract-ocr
sudo apt-get install tesseract-ocr


使用: tesseract test.jpg -l  eng
Tesseract是图盲,默认情况下只能看得懂未压缩的TIFF图像,如果直接用tesseract处理其它格式的图片,会报错如下:
name_to_image_type:Error:Unrecognized image type:test.jpg
IMAGE::read_header:Error:Can't read this image type:test.jpg
tesseract:Error:Read of file failed:test.jpg

所以我们需要用ImageMagick来转换图片格式。
安装ImageMagick:
sudo apt-get install imagemagick

使用imagemagick转换图片格式:
convert -compress none -depth 8 -alpha off  test.jpg  test.tif

使用tesseract,结果保存在out.txt中
tesseract test.tif out

问题:如何让tesseract只识别字母或者数字?
编辑:sudo vi /usr/share/tesseract-ocr/tessdata/configs/digits
tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz0123456789
执行:
tesseract 1.tif out nobatch digits


附录:
Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
pagesegmode values are:
0 = Orientation and script detection (OSD) only.
1 = Automatic page segmentation with OSD.
2 = Automatic page segmentation, but no OSD, or OCR
3 = Fully automatic page segmentation, but no OSD. (Default)
4 = Assume a single column of text of variable sizes.
5 = Assume a single uniform block of vertically aligned text.
6 = Assume a single uniform block of text.
7 = Treat the image as a single text line.
8 = Treat the image as a single word.
9 = Treat the image as a single word in a circle.
10 = Treat the image as a single character.
-l lang and/or -psm pagesegmode must occur before anyconfigfile.


tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

tesseract    图片名  输出文件名 -l 字库文件 -psd pagesegmode 配置文件
例如:
tesseract code.jpg result  -l chi_sim -psd 7 nobatch
-l chi_sim 表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为.raineddata,简体中文字库文件名为:  chi_sim.traineddata)
-psd 7 表示告诉tesseract code.jpg图片是一行文本  这个参数可以减少识别错误率.  默认为 3
configfile 参数值为tessdata\configs 和  tessdata\tessconfigs 目录下的文件名

分享到:
评论

相关推荐

    Linux下安装tesseract-ocr教程及相关资源包

    在Ubuntu或Debian系统中,可以通过包管理器安装Tesseract OCR。执行以下命令: ```bash sudo apt install tesseract-ocr ``` 对于基于RPM的系统,如Fedora或CentOS,使用`dnf`或`yum`: ```bash sudo dnf install...

    tesseract-ocr安装包和中文语言包

    安装完成后,你可以通过命令行来使用Tesseract OCR识别中文文本。例如,如果有一个名为`image.jpg`的图像文件,你可以用以下命令进行识别: ```bash tesseract image.jpg output.txt -l chi_sim ``` 这里的`-l chi...

    ubuntu下安装tesseract 简体 中文chi_sim.traineddata.gz下载

    在Ubuntu操作系统中,Tesseract OCR(Optical Character Recognition,光学字符识别)是一个强大的文本识别引擎,可以将图像中的文本转换成可编辑的文本格式。它最初由HP开发,后来成为Google的一个开源项目。...

    tesseract-ocr4.0 简体中文语言安装包.zip

    Tesseract OCR(Optical Character Recognition,光学字符识别)是一款由谷歌维护的开源OCR引擎,它能够识别图像中的文字并转换为可编辑的文本格式。本文将详细阐述tesseract-ocr4.0的简体中文语言包及其安装过程,...

    tesseract-ocr-for-php-master.zip

    use thiagoalessio\TesseractOCR\TesseractOCR; $text = (new TesseractOCR('image.png')) -&gt;whitelist(range('a', 'z'), range('A', 'Z'), range(0, 9)) // 只识别字母和数字 -&gt;language('eng') // 设置识别语言...

    Tesseract-OCR已安装中文识别离线版.rar

    已经打包好的Tessract-OCR,下载后解压缩到文件夹,win系统下不能解压到有中文目录的文件夹子目录下,建议直接放在d盘或者d:\Program Files\目录下,放入后,需要复制该文件夹的地址,然后在PATH里面添加文件夹路径...

    Tesseract_OCR字符识别模块_

    例如,在Ubuntu上,可以使用`sudo apt-get install tesseract-ocr`命令进行安装。安装完成后,需要设置环境变量,以便在命令行中调用。 **3. 使用方法** Tesseract OCR提供了命令行工具,允许用户直接对图像进行...

    tesseract-ocr3.0的安装包和中文语言包

    **四、使用Tesseract OCR识别中文** 现在,你可以使用Tesseract OCR来识别中文文本了。例如,识别一个名为“test.jpg”的图像中的中文: ``` tesseract test.jpg output -l chi_sim ``` 这会生成一个名为“output....

    OCR识别开源库tesseract-3.00

    在Linux环境下,Tesseract可以轻松通过包管理器安装,如在Ubuntu系统中使用`sudo apt-get install tesseract-ocr`命令即可。一旦安装完成,可以通过命令行直接使用,如`tesseract input.png output.txt`来识别图片中...

    tesseractOCR 验证码解析

    3. 调用 tesseractOCR:通过命令行接口或者Python的pytesseract库调用 tesseractOCR 进行识别。 4. 获取识别结果:tesseractOCR 返回识别出的文本字符串。 5. 后处理:根据需要对识别结果进行后处理,比如去除多余...

    tesseract-ocr-4.00.00(含中文语言包)

    1. **安装Tesseract OCR**:首先,你需要通过包管理器(如apt-get for Ubuntu或brew for macOS)安装Tesseract。确保在安装时包含了中文语言包,通常命令会是`sudo apt-get install tesseract-ocr` 或 `brew install...

    tesseract 4 OCR 5月最新

    使用Tesseract进行OCR识别** Tesseract命令行工具提供了丰富的参数选项,如指定输入图像、输出格式、识别语言等。例如,可以使用以下命令识别一个JPEG图像中的文本: ``` tesseract image.jpg output.txt -l chi_...

    tesseract-ocr安装包和简体中文语言包

    在Linux和Mac上,可能需要通过命令行工具使用包管理器进行安装,例如在Ubuntu上使用`sudo apt-get install tesseract-ocr`。 3. **中文语言包**: 安装完基础的Tesseract OCR后,需要添加中文语言支持。压缩包中的...

    Tesseract-ocr简体中文库

    Tesseract OCR(Optical Character Recognition,光学字符识别)是一款开源的OCR引擎,由HP公司开发,后来被Google接管并持续维护。它能够识别图像中的文本,并将其转换为可编辑、可搜索的格式。Tesseract OCR的强大...

    tesseract-ocr

    本文详细介绍了如何在 Linux 系统下安装 Tesseract-OCR,并使用 Python 的 `pytesseract` 库进行简单的图像文字识别操作。通过以上步骤,用户可以快速上手并利用 Tesseract-OCR 实现自动化文档处理或图像识别等任务...

    tesseract-ocr以及中文包

    # 使用pytesseract进行OCR识别 text = pytesseract.image_to_string(img, lang='chi_sim') # 打印识别出的文字 print(text) ``` 在这个例子中,`lang='chi_sim'`参数指定了使用简体中文识别模型。 **提高识别准确...

    【图片验证码提取工具】tesseract-ocr下载

    4. **测试**:安装完成后,可以使用`tesseract --version`命令检查是否安装成功,并通过`tesseract image.png output.txt`命令对图片进行识别,其中`image.png`是输入图片,`output.txt`是保存识别结果的文本文件。...

Global site tag (gtag.js) - Google Analytics