tesseract本身代码是由c/c++混编而成的,其中有用的简单的接口函数几乎都是在baseapi.h中。
   
从其处理过程中,不难得出:它还需要有一个image处理的类,及相关的方法;这样子,读取图片后,生成image对象,再获取相关的参数;当然还需要有对image对象的读取,版面分析等接口函数;再次,它还定义了很多自身的数据类型,比如:BITS16array_recordBLOCKIMAGE等;而且它具有自学的能力。
   
现在,我们从头有调理地简单讲述一下子:
1tesseract::TessBaseAPI,基础的接口函数,包含了初始化,简单的     处理图片文字信息,版面分析的结果体等。 
2IMAGE,只是一个类,里边封装了相关的图片操作,包括图片的读取,图片参数信息的获取等。 
3)其他,包括数据类型声明,相关结构体声明,跨平台处理,命令端参数提取等。 

我们在实际中用到的就是前两个里边的东西。

 

声明:以下函数皆是在tesseract::TessBaseAPI

1: SetImage

函数声明:

void tesseract::TessBaseAPI::SetImage

(

const unsigned char * 

imagedata,

   

int 

width,

   

int 

height,

   

int 

bytes_per_pixel,

   

int 

bytes_per_line 

 

)

   

为Tesseract 提供待识别的图片。

2SetSourceResolution

函数声明:

void
tesseract::TessBaseAPI::SetSourceResolution(int ppi)

设置源图像的分辨率(像素每英尺),可以计算最终的字体大小信息。 SetImage之后调用此函数。

3SetRectangle

函数声明:

 

void tesseract::TessBaseAPI::SetRectangle

(

int 

left,

   

int 

top,

   

int 

width,

   

int 

height 

 

)

   

将识别限制到图像的一个子矩形区域,SetImage 之后调用此函数。每一次该函数调用后将清除识别结果,以便同一张图像可以进行多矩形区域的识别。

4SetThresholder

函数声明:

void
tesseract::TessBaseAPI::SetThresholder(
ImageThresholder * thresholder)

在一些特殊的情况下, 通常是产生一个阈值器类的子类的时候,该函数可以提供一个不同的阈值器,阈值器可能会随着图片和设定预装入,或者被随后设定。Tesseract 拥有阈值器支配权,并在它被替换或是API被析构后删除。

5GetThresholdedImage

函数声明:

Pix *
tesseract::TessBaseAPI::GetThresholdedImage()

从Tesseract获得内部阈值图像的拷贝,在SetImage
或者TesseractRect 之后可以随时别调用。   注意,只有安装了Leptonica之后才可使用。

6GetRegions

函数声明:

Boxa * tesseract::TessBaseAPI::GetRegions

(

Pixa ** 

pixa

)

 

以aleptonica-style
Boxa, Pixa pair 格式获得页面结构分析的结果,在Recognize前后均可被调用。

7GetTextlines

函数声明:

 

Boxa *
tesseract::TessBaseAPI::GetTextlines

(

Pixa ** 

pixa,

   

int ** 

blockids 

 

)

   

以aleptonica-style
Boxa, Pixa pair 格式获取文本行,在Recognize前后均可被调用。如果blockids(block数目)
是空的话,每行block- id返回每行一个元素的数组,使用之后被删除。

8GetStrips

函数声明:

Boxa *
tesseract::TessBaseAPI::GetStrips

(

Pixa ** 

pixa,

   

int ** 

blockids 

 

)

   

以aleptonica-style
Boxa, Pixa pair 格式获取图像区域的文本行和条形区域,方便后面非矩形区域的处理。在Recognize前后均可被调用

9GetWords

函数声明:

Boxa *
tesseract::TessBaseAPI::GetWords(Pixa ** pixa)

   
以aleptonica-style Boxa, Pixa pair 格式获取图像区域的文字,在Recognize前后均可被调用。

10GetConnectedComponents

函数声明:

Boxa * tesseract::TessBaseAPI::GetConnectedComponents

(

Pixa ** 

pixa

)

 

在页面分析之后识别之间,以aleptonica-style
Boxa, Pixa pair 格式获得独立连通的文本区域,在Recognize前后均可被调用。

11GetComponentImages

函数声明:

Boxa * tesseract::TessBaseAPI::GetComponentImages

(

PageIteratorLevel 

level,

   

bool 

text_only,

   

Pixa ** 

pixa,

   

int ** 

blockids 

 

)

   

以aleptonica-style
Boxa, Pixa pair 格式获得制定级别的元素(block,textline, word),在Recognize前后均可被调用。果blockids(block数目)
是空的话,每行block- id返回每行一个元素的数组,使用之后被删除。如果text_only 为真, 只有text可被返回。

12GetThresholdedImageScaleFactor

函数声明:

int
tesseract::TessBaseAPI::GetThresholdedImageScaleFactor()const

返回阈值图像的比例系数,该阈值图像由yGetThresholdedImage() 和调用了GetComponentImages()的GetX()函数返回。

13DumpPGM

函数声明:

void tesseract::TessBaseAPI::DumpPGM

(

const char * 

filename

)

 

将内部二值图像放到PGM文件中。

14AnalyseLayout

函数声明:

PageIterator *
tesseract::TessBaseAPI::AnalyseLayout()

SetPageSegMode设定的模式进行页面结构分析,返回一个(iterator),错误返回为空。Iterator 使用后必须删除。注意:该函数指向TessBaseAPI 类内部的数据,因此必须在TessBaseAPI 存在的情况下才可被调用。不能被改变内部PAGE_RES的 Init, SetImage, Recognize, Clear, End DetectOS或者其他调用。

15Recognize

函数声明:

int tesseract::TessBaseAPI::Recognize(ETEXT_DESC * monitor)

识别 来自SetAndThresholdImage的图像, 产生Tesseract
内部结构数据,成功返回0,如果需要,下面的Get*Tex函数会调用它。识别完成后,在SetImage之前,输出都会保持在内部。

16RecognizeForChopTest

函数声明:

int
tesseract::TessBaseAPI::RecognizeForChopTest(
ETEXT_DESC * monitor)

检索来自SetAndThresholdImage(), Recognize() or TesseractRect()的信息(在需要的情况下隐式调用Recognize)。对Recognize 变化一测试chopper.

17ProcessPages

函数声明:

 

bool
tesseract::TessBaseAPI::ProcessPages

(

const char * 

filename,

   

const char * 

retry_config,

   

int 

timeout_millisec,

   

STRING * 

text_out 

 

)

   

识别指定文件的所有页面,文件格式为(a multi-page tiff
or list of filenames, or single image),
并且根据参数(tessedit_create_boxfile, tessedit_make_boxes_from_boxes, tessedit_write_unlv,
tessedit_create_hocr.)得到合适的文本。在输入文件的每一页运行ProcessPage,输入文件可以是(a
multi-page tiff, single-page other file format, or a plain text list of images
to read),返回值放在text_out中。如果tessedit_page_number 非负,程序将会在其所代表那一页开始。运行错误返回false. 如果程序暂停在某一页timeout_millisec (非负) 时间终止程序,或者由于某些原因一些页面处理失败,该页面将会以retry_config 的配置文件重新处理。

18ProcessPage

函数声明:

 

bool
tesseract::TessBaseAPI::ProcessPage

(

Pix * 

pix,

   

int 

page_index,

   

const char * 

filename,

   

const char * 

retry_config,

   

int 

timeout_millisec,

   

STRING * 

text_out 

 

)

   


ProcessPages进行单页面识别。Text放到text_out中, pix是文件名,page_index是边缘处理后的元数据,比如box文件,或者hOCR格式文件。

19GetIterator

函数声明:

ResultIterator * tesseract::TessBaseAPI::GetIterator()

为 LayoutAnalysis
and/or Recognize运行结果获取读取顺序的迭代器(iterator),使用之后删除。

20:GetMutableIterator

函数声明:

MutableIterator *
tesseract::TessBaseAPI::GetMutableIterator
()

为 LayoutAnalysis
and/or Recognize运行结果获取可变的迭代器(iterator),使用之后删除。

21GetUTF8Text

函数声明:

char * tesseract::TessBaseAPI::GetUTF8Text()

识别的文本被返回为字符指针,以UTF8编码(must be
freed with the delete [] operator)。从内部数据结构中获得文本字符串。

22

函数声明:

char *
tesseract::TessBaseAPI::GetHOCRText(int page_number)

Tesseract--主要API功能介绍的更多相关文章

  1. Tesseract-OCR-05-主要API功能介绍

    Tesseract-05-主要API功能介绍 tesseract本身代码是由c/c++混编而成的,其中有用的简单的接口函数几乎都是在baseapi.h中 从其处理过程中,不难得出: 它还需要有一个im ...

  2. kafka restful api功能介绍与使用

    前述 采用confluent kafka-rest proxy实现kafka restful service时候(具体参考上一篇笔记),通过http协议数据传输,需要注意的是采用了base64编码(或 ...

  3. 微信小程序产品定位及功能介绍

    产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...

  4. MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览

    之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...

  5. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  6. Tyk API网关介绍及安装说明

    Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...

  7. Android Studio 2.1及其以上版本中的instant run功能 介绍

    Android Studio 2.0及其以后版本中的instant run功能 介绍 转 https://blog.csdn.net/zy987654zy/article/details/514961 ...

  8. 全国天气预报信息数据 API 功能简介与代码调用实战视频

    此文章对开放数据接口 API 之「全国天气预报信息数据 API」进行了功能介绍.使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用,并对实战开发进行了视频演示. 1. 产品功能 接口开放了 ...

  9. 获取任意链接文章正文 API 功能简介

    此文章对开放数据接口 API 之「获取任意链接文章正文」进行了功能介绍.使用场景介绍以及调用方法的说明,供用户在使用数据接口时参考之用. 1. 产品功能 接口开放了根据提供的文章链接 Url 参数,智 ...

随机推荐

  1. mybatis 中javaType和OfType 的区别

    JavaType和ofType都是用来指定对象类型的,但是JavaType是用来指定pojo中属性的类型,而ofType指定的是映射到list集合属性中pojo的类型.pojo类: publiccla ...

  2. asp.net core webapi处理Post请求中的request payload

    request payload的Content-Type实际上是text/plain的,如果请求的 Content-Type 为 application/json,这将导致415 Unsupporte ...

  3. 常用oracle中系统表查询语句

    sqlplus / as sysdbaSQL>select status from v$instance;1.查看最大连接数show parameter processes;2.查询oracle ...

  4. JIT(Just in time,即时编译,边运行边编译)、AOT(Ahead Of Time,运行前编译),是两种程序的编译方式

    JIT(Just in time,即时编译,边运行边编译).AOT(Ahead Of Time,运行前编译),是两种程序的编译方式

  5. puzz: 图片和表单上传的不一致问题

    1.    方向1 用户提交表单, 图片和表单同步上传.(由同一服务器处理, 服务器压力大. 没有分离) 2.    方向2 图片和表单分开上传. 如图片访问ftp,表单提交后台(图片和后台分离) 2 ...

  6. Java 开始

    (事先声明:该文章并非完全是我自己的产出,更多的是我个人在看到资料后通过理解并记录下来,作为自己阅读后的一个笔记:我现在试图对自己多年工作中的知识点做一个回顾,希望能融会贯通) (此文参考<Ja ...

  7. 未来-IOT-Aliyun:阿里云 IOT - 开发者社区

    ylbtech-未来-IOT-Aliyun:阿里云 IOT - 开发者社区 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://dev.iot. ...

  8. 未来-区块链-IBM:IBM 区块链技术开发社区

    ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...

  9. MySQL binlog2sql-闪回数据

    binlog2sql 从MySQL binlog解析出你要的SQL.根据不同选项,你可以得到原始SQL.回滚SQL.去除主键的INSERT SQL等. 用途 数据快速回滚(闪回) 主从切换后新mast ...

  10. 阿里云linux yum源配置

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...