最近在github上面看到一个开源的ocr文字识别库,感觉效果还可以,所以在这里介绍一下,这个项目的原地址在:https://github.com/tesseract-ocr/tesseract。

tesseract库支持你训练自己的文字识别模型,当然其本身已经提供了几十种不同语言模型,你也可以直接下载使用,最新的4.0版本使用了LSTM神经网络框架,

在识别中文方面效果还是不错的。tesseract有两种使用方式,一种是安装完成以后,通过命令行向tesseract应用传入要解析的图片,翻译完成后输出一个txt文件;

第二种方式是自己写程序调用api函数。

下面介绍一下tesseract库的使用方法。

如果你用的是ubuntu18.0.4那么安装很简单:

在终端输入指令安装即可:

sudo apt-get install tesseract-ocr

sudo apt-get install libtesseract-dev

如果你跟我一样是使用ubuntu16.0.4,那么需要按照我下面的方法来安装,因为16.0.4采用上面的办法安装的是3.0的版本,3.0解析的效果不是很好。

如果你是在windows平台或其他平台可以参考:https://github.com/tesseract-ocr/tesseract/wiki/Compiling。

(1)安装依赖库

sudo apt-get install g++

sudo apt-get install autoconf automake libtool

sudo apt-get install pkg-config

sudo apt-get install libpng-dev

sudo apt-get install libjpeg8-dev

sudo apt-get install libtiff5-dev

sudo apt-get install zlib1g-dev

sudo apt-get install libicu-dev

sudo apt-get install libpango1.0-dev

sudo apt-get install libcairo2-dev

sudo apt-get install git

(2)安装leptonica 1.74

cd ~/Download

git clone https://github.com/DanBloomberg/leptonica

cd leptonica

./configure

make

make install

(3)安装tesseract

cd ~/Download

git clone https://github.com/tesseract-ocr/tesseract

cd tesseract

./autogen.sh

./configre --prefix=/usr/local

make

make install

(4)下载语言包

tesseract提供了三种模型,testdata:普通模型,testdata_fast:快速识别模型,testdata_best:最佳识别模型,

在:https://github.com/tesseract-ocr/tessdata_best目录下下载:eng.traineddata、chi_sim.traineddata、chi_sim_vert.traineddata三个文件,

然后将这三个文件复制到/usr/local/share/testdata目录下,如果你想识别其他语言也是下载语言识别模型然后放到testdata目录下即可。

(5)设置语言模型路径

vim ~/.bashrc

在末尾添加:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

export TESSDATA_PREFIX=/usr/local/share/tessdata/

然后关闭终端,重新打开终端生效。

(6)测试识别库

在终端输入

tesseract --version看版本是否如下:

输入:

tesseract --list-langs查看语言模型是否正确:

可以看到自动识别了英语和简体中文模型了。

然后随便找张有中文字符的图片进行识别测试:

tesseract 1.jpg out -l chi_sim

参数说明:1.jpg:要解析的文件

       out:解析输出的文件名

       -l chi_sim:采用的语言模型,这里选择了简体中文。

我识别的原文:

识别到的文字如下:

(7)用C++调用api进行识别测试。

代码:

#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
#include <iostream>
#include <memory>
using namespace std;
int main()
{
tesseract::TessBaseAPI api;
cout<<"version:"<<api.Version()<<endl;
if(api.Init(NULL,"chi_sim")==0)
cout<<"Init Ok"<<endl;
else
{
cout<<"Init error"<<endl;
return -1;
}
api.SetPageSegMode(tesseract::PageSegMode::PSM_AUTO);
api.SetVariable("save_best_choices","T");
auto pixs = pixRead("./1.jpg");
if(!pixs)
{
cout<<"load image error"<<endl;
return -2;
}
api.SetImage(pixs);
api.Recognize(0);
cout<<std::unique_ptr<char[]>(api.GetUTF8Text()).get()<<endl;
api.Clear();
pixDestroy(&pixs);
return 0; }

makefile:

CXX		  := g++
CXX_FLAGS := -Wall -Wextra -std=c++11 -ggdb BIN := .
SRC := .
INCLUDE :=
LIB := LIBRARIES :=-llept -ltesseract
EXECUTABLE := ocrDemo all: $(BIN)/$(EXECUTABLE) run: clean all
clear
./$(BIN)/$(EXECUTABLE) $(BIN)/$(EXECUTABLE): $(SRC)/*.cpp
$(CXX) $(CXX_FLAGS) -I$(INCLUDE) -L$(LIB) $^ -o $@ $(LIBRARIES) clean:
-rm $(BIN)/*

测试效果:

开源OCR识别库-Tesseract介绍的更多相关文章

  1. Python的开源人脸识别库:离线识别率高达99.38%

    Python的开源人脸识别库:离线识别率高达99.38%   github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...

  2. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

  3. face_recognition开源人脸识别库:离线识别率高达99.38%

    基于Python的开源人脸识别库:离线识别率高达99.38%——新开源的用了一下感受一下 原创 2017年07月28日 21:25:28 标签: 人脸识别 / 人脸自动定位 / 人脸识别开源库 / f ...

  4. 开源文字识别软件tesseract

    1.下载4.0软件,下一步下一步到成功: 2.安装之后配置环境变量,Path中添加安装路径(默认:C:\Program Files (x86)\Tesseract-OCR) 3.新增语言库的环境变量, ...

  5. python ocr中文识别库 tesseract安装及问题处理

    这个破东西,折腾了快1个小时,网上的教材太乱了. 我解决的主要是windows的问题 先下载exe.(一看到这个,我就有种预感,不妙) https://digi.bib.uni-mannheim.de ...

  6. 【转】OCR识别引擎tesseract使用方法——安装leptonica和libtiff

    原文来自:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c4224 ...

  7. 开源 人脸识别 openface 实用介绍 实例演示 训练自己的模型

    1.OpenFace 是 卡耐基梅陇(CMU)大学的一个图像+机器学习项目,整体程序包含:人脸发现,特征提取,特征神经网络训练,人脸识别这四部分. github   https://github.co ...

  8. 基于Python的开源人脸识别库:离线识别率高达99.38%

    项目地址:https://github.com/ageitgey/face_recognition#face-recognition 本文的模型使用了C++工具箱dlib基于深度学习的最新人脸识别方法 ...

  9. C# WPF开源控件库MaterialDesign介绍

    介绍 1.由于前端时间萌发开发一个基础架构得WPF框架得想法, 然后考虑到一些界面层元素统一, 然后就无意间在GitHub上发现一个开源WPF UI, 于是下载下来了感觉不错. 官网地址:http:/ ...

随机推荐

  1. java内部类的本质

    连接与通信,作为桥接中间件存在. 内部类和主体类可以无障碍通信: 1.通过继承连接实现: 2.通过接口连接通信: 形式: 1.命名空间: 2.运行上下文: 其它: 信息隐藏是次要功能. 内部类 Jav ...

  2. JS的ES6的Symbol

    一.Symbol 1.什么是Symbol: Symbol是ES6新添加的原始类型(ES5已有原始数据类型:String,Number,boolean,function,undefined,object ...

  3. Linux 检测 tls

    检测 tls # openssl s_client -connect intl.jdair.net: -tls1

  4. 15-网页,网站,微信公众号基础入门(网页版MQTT,做自己的MQTT调试助手)

    https://www.cnblogs.com/yangfengwu/p/11198572.html 说一下哈,,如果教程哪里看不明白...就去自己百度补充哪一部分,,学习不是死记硬背,需要会学习,永 ...

  5. 请找出"aaaabbcccdddd"字符串中出现最多的字母

    function getCount(str) { for(var code=32;code<128;code++){ var mych=String.fromCharCode(code); va ...

  6. PHP常用的魔术方法及规则

    1. __construct 具有构造函数的类会在每次创建新对象时先调用此方法;初始化工作执行.2. __desstruct 对象的所有引用都被删除或者当对象被显式销毁时执行.3.__call()在对 ...

  7. 大厂HR面试必备ES6中的深入浅出面试题知识点

    ESMAScript6简介,ES6是JavaScript语言的下一代标准,目的是让JavaScript语言可以写复杂的大型应用程序,成为企业级语言.那么ECMAScript和JavaScript的关系 ...

  8. vue指令用法

    vue指令 指令式带有 v- 前缀的特殊特性v-text和v-html都属于指令将数据和dom做关联,当表达式的值改变时,响应式地作用在视图 解决大胡子语法闪烁案例 [v-cloak] { dispa ...

  9. tomcat做成Windows自启动服务

    一.下载Tomcat 下载Windows版本的tomcat,一般是以zip结尾的包,免安装的包,而Linux包虽然解压可以运行,但是缺少service.bat关键文件,无法做成服务形式 下载网站: h ...

  10. js svg转图片格式

      1.情景展示 闲来无事的时候,发现chrome扩展程序里面有图像,本想下载下来,却发现文件格式是svg格式,如何将svg文件改成图片格式? chrome-extension://jlgkpaici ...