Tesseract-05-主要API功能介绍

  • tesseract本身代码是由c/c++混编而成的,其中有用的简单的接口函数几乎都是在baseapi.h中
  • 从其处理过程中,不难得出:
    • 它还需要有一个image处理的类,及相关的方法;
    • 这样子,读取图片后,生成image对象,再获取相关的参数;
    • 当然还需要有对image对象的读取,版面分析等接口函数;
    • 再次,它还定义了很多自身的数据类型,比如:BITS16、array_record、BLOCK、IMAGE等;
    • 而且它具有自学的能力

现在,我们从头有调理地简单讲述一下子:

(1)tesseract::TessBaseAPI,基础的接口函数,包含了初始化,简单的 处理图片文字信息,版面分析的结果体等。
(2)IMAGE,只是一个类,里边封装了相关的图片操作,包括图片的 读取,图片参数信息的获取等。
(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 提供待识别的图片。

2:SetSourceResolution

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

3:SetRectangle

函数声明:

void tesseract::TessBaseAPI::SetRectangle ( int left,
int top,
int width,
int height
)
将识别限制到图像的一个子矩形区域,SetImage 之后调用此函数。每一次该函数调用后将清除识别结果,以便同一张图像可以进行多矩形区域的识别。

4:SetThresholder

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

5:GetThresholdedImage

函数声明:
Pix * tesseract::TessBaseAPI::GetThresholdedImage()
从Tesseract获得内部阈值图像的拷贝,在SetImage 或者TesseractRect 之后可以随时别调用。 注意,只有安装了Leptonica之后才可使用。

6:GetRegions

函数声明:
Boxa * tesseract::TessBaseAPI::GetRegions ( Pixa ** pixa )
以aleptonica-style Boxa, Pixa pair 格式获得页面结构分析的结果,在Recognize前后均可被调用。

7:GetTextlines

函数声明:

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

8:GetStrips

函数声明:
Boxa * tesseract::TessBaseAPI::GetStrips ( Pixa ** pixa,
int ** blockids
)
以aleptonica-style Boxa, Pixa pair 格式获取图像区域的文本行和条形区域,方便后面非矩形区域的处理。在Recognize前后均可被调用

9:GetWords

函数声明:
Boxa * tesseract::TessBaseAPI::GetWords(Pixa ** pixa)
以aleptonica-style Boxa, Pixa pair 格式获取图像区域的文字,在Recognize前后均可被调用。

10:GetConnectedComponents

函数声明:
Boxa * tesseract::TessBaseAPI::GetConnectedComponents ( Pixa ** pixa )
在页面分析之后识别之间,以aleptonica-style Boxa, Pixa pair 格式获得独立连通的文本区域,在Recognize前后均可被调用。

11:GetComponentImages

函数声明:
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可被返回。

12:GetThresholdedImageScaleFactor

函数声明:
int tesseract::TessBaseAPI::GetThresholdedImageScaleFactor()const
返回阈值图像的比例系数,该阈值图像由yGetThresholdedImage() 和调用了GetComponentImages()的GetX()函数返回。

13:DumpPGM

函数声明:
void tesseract::TessBaseAPI::DumpPGM ( const char * filename )
将内部二值图像放到PGM文件中。

14:AnalyseLayout

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

15:Recognize

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

16:RecognizeForChopTest

函数声明:
int tesseract::TessBaseAPI::RecognizeForChopTest(ETEXT_DESC * monitor)
检索来自SetAndThresholdImage(), Recognize() or TesseractRect()的信息(在需要的情况下隐式调用Recognize)。对Recognize 变化一测试chopper.

17:ProcessPages

函数声明:

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 的配置文件重新处理。

18:ProcessPage

函数声明:

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格式文件。

19:GetIterator

函数声明:
ResultIterator * tesseract::TessBaseAPI::GetIterator()
为 LayoutAnalysis and/or Recognize运行结果获取读取顺序的迭代器(iterator),使用之后删除。

20:GetMutableIterator

函数声明:
MutableIterator * tesseract::TessBaseAPI::GetMutableIterator()
为 LayoutAnalysis and/or Recognize运行结果获取可变的迭代器(iterator),使用之后删除。

21:GetUTF8Text

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

更多文章链接:Tesseract 随笔



    • 本笔记不允许任何个人和组织转载

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

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

    tesseract本身代码是由c/c++混编而成的,其中有用的简单的接口函数几乎都是在baseapi.h中.     从其处理过程中,不难得出:它还需要有一个image处理的类,及相关的方法:这样子, ...

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

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

  3. Python下Tesseract Ocr引擎及安装介绍

    1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/tesseract,目前最新的源码 ...

  4. Tesseract OCR使用介绍

    #Tesseract OCR使用介绍 ##目录[TOC] ##下载地址及介绍 官网介绍:http://code.google.com/p/tesseract-ocr/wiki/TrainingTess ...

  5. Tesseract Ocr引擎

    Tesseract Ocr引擎 1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/t ...

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

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

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

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

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

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

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

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

随机推荐

  1. rsa字符串格式公钥转换python rsa库可识别的公钥形式

    在爬虫分析的时候,经常在网页上看到如下格式的rsa公钥: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC7kw8r6tq43pwApYvkJ5laljaN9BZb21 ...

  2. 采用轮询的方式检测串口输入&&采用中断的方式检测串口输入的区别!

    区别1:中断USART1_IRQHandler()不放进main(主函数)里,而轮询检测rcv()需要: 但是需要在主函数里对中断NVIC()进行初始化,因为所有程序都是从主函数开始一步一步执行,想要 ...

  3. 移动端滑动时页面惯性滑动overflow-scrolling: touch

    -webkit-overflow-scrolling:auto | touch; auto: 普通滚动,当手指从触摸屏上移开,滚动立即停止 touch:滚动回弹效果,当手指从触摸屏上移开,内容会保持一 ...

  4. vue,新手上路,基础,常见问题

    1. 报这个错的  都是关键字问题,不要用关键字 做为组件的名字,不然肯定都会报错,如果找不到就一个字母的看,我就是 忘记改组件的名字导致报错,这个问题   改个名字就好,切记改全不然只有页面报错,文 ...

  5. DB link的迁移

    我们在做某些Schema的迁移的时候,由于用到Public的db link,然而由于不知道db link中目标端账号的密码,因此无法在新环境重新创建DB link. 本次实验的思路是将视图dba_db ...

  6. python学习-基础知识-1

    1.计算机历史 计算机使用高低电压的两种状态来描述信息.计算机可以理解的只有二进制数据即010100011....,1个比特位可以表示的状态只有2种,n个比特位可以表示的状态有2的n次方种. 所以如果 ...

  7. (转)Cobbler自动化部署最佳实践

    原文:http://www.xuliangwei.com/xubusi/446.html 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统, ...

  8. 使用BeanUtils封装数据时数据类型的转换

    //获得表单数据 Map<String, String[]> properties = request.getParameterMap(); User user = new User(); ...

  9. <a>标签里面嵌图片<img>下面出现一小段空白的原因

    今天做项目的时候,发现在a标签,里面嵌入<img>会出现空白 css 内容: a{ border:1px solid black; } img{ width:200px; } html内容 ...

  10. ubuntu中ANT的安装和配置

    一. 自动安装可以使用sudo apt-get install ant安装,但是这种装法不好.首先安装的ant不是最新的版本,其次还要装一堆其他的附带的东西.所以我才用自己手动ant安装. 二. 手动 ...