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

2023-11-12

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 随笔



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

转载于:https://www.cnblogs.com/xpwi/p/9605983.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • CMD 命令行实现 Windows 下复制文件到文件夹下的所有文件夹

    目录 前言 1 学习 xcopy 2 展示命令行 前言 提示 这里可以添加本文要记录的大概内容 整件事情真是花了我大半天的时间 几个小时啊 终于从错误中尝试出了正确的做法 赶紧分享一下 1 学习 xcopy Win R 调出运行 键入 cm
  • ElasticSearch简介

    ElasticSearch是Java开发并且是当前最流行的开源的企业级搜索引擎 能够达到近实时搜索 稳定可靠快速安装使用方便 客户端支持Java net各种编程语言 ElasticSearch通Lucene的比较 Lucene只能在Java
  • MAC安装LLVM指导

    首先克隆llvm github工程代码 下载有时出现中断失败 git clone https github com llvm llvm project git 安装依赖软件 安装 ninja 也可以通过编译方式安装 brew install
  • 微信公众号内下载pdf等文件,受微信所限制,安卓和IOS不同处理方式(最最最优版)

    继上一篇文章微信公众号内下载pdf等文件 受微信所限制 安卓和IOS不同处理方式 后觉得还有更好的解决办法 这次真的找到更加优化版本 一定需要后台配合才行 后台接口返回Blob 后端设置response setHeader Content
  • OPC通信从入门到精通_1_OPC基础知识及简单C#程序编写(OPCDA,OPCUA简介;OPC通信数据流框架图;C#程序编写)

    文章目录 1 OPC基础知识 OPCDA OPCUA 1 1 OPC基础知识 1 2 OPC通信读写方式 2 OPC通信仿真 2 1 上位机与PLC通过ModbusTCP直接通信 2 2 OPC通信介绍及实例 2 2 1 OPC通信与Mod
  • TCP报文格式

    TCP报文格式 文章目录 TCP报文格式 TCP首部 三次握手 四次挥手 TCP首部 源端口和目的端口 各占16bit 序号 SEQ序号 给发送的每个数据包标上序号 确认号 ACK序号 是指即将接收的数据包序号 注意 这里指的是序号不是标志
  • Linux 之软中断softirq

    版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net huangweiqing80 article details 83274095 softirq驱动开发人员一般都不会用到 到内核代码中会用到soft
  • python requests get请求_Python接口自动化之requests请求封装

    今天距2021年253天 这是ITester软件测试小栈第114次推文 在上一篇Python接口自动化测试系列文章 Python接口自动化之Token详解及应用 介绍token基本概念 运行原理及在自动化中接口如何携带token进行访问 以
  • docker内存

    docker container 动态修改内存限制 docker update help docker update m 4096m memory swap 1 ubuntu test docker update m 4096m memor
  • FPGA中的output or inout port xxx must be connected to a structural net expression错误

    主模块的output不能加reg 只在子模块的output 加reg 关于子模块调用 有两种调用方式 第一种是位置对应 如 bcd accbcd in8 out71 ou72 out73 如上图所示 第二种是信号名对应方式 此时不必按顺序
  • 数据结构---栈&&队列

    目录 什么是数据结构 什么是算法 Algorithm 生活中的数据结构和算法 数组结构 栈结构 stack 栈结构的实现 十进制转二进制 队列结构 Queue 队列的应用 对列类的创建 击鼓传花面试题 优先级队列 优先级队列的实现 什么是数
  • C语言中排序函数的用法

    C语言中没有预置的sort函数 如果在C语言中 遇到有调用sort函数 就是自定义的一个函数 功能一般用于排序 一 可以编写自己的sort函数 如下函数为将整型数组从小到大排序 void sort int a int l a为数组地址 l为
  • TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

    转 http www leiphone com news 201702 T5e31Y2ZpeG1ZtaN html 雷锋网按 本文作者黄文坚 PPmoney 大数据算法总监 TensorFlow 实战 作者 本文节选自 TensorFlow
  • SQL Server日期格式的多种转换方法

    MSSQL Server的日期字段是datetime 其默认格式是yyyy mm dd hh mm ss mmm 如在查询分析器里面执行 select getdate 会得到如下结果 2006 03 30 22 09 33 763 但对于我
  • 双因素方差分析(R)

    目录 原理 双因素等重复试验的方差分析 假设前提和模型设定 离差平方和分解 检验统计量和拒绝域 例题 应用 双因素无重复试验的方差分析 假设前提和模型设定 离差平方和分解 检验统计量和拒绝域 例题 应用 原理 在单因素方差分析的基础上 双因
  • 微信小程序 WXBizDataCrypt 解密 报错

    在使用微信官方WXBizDataCrypt js解密encryptedData获取敏感数据的时候 偶尔会报错 DeprecationWarning Buffer is deprecated due to security and usabi
  • 字符串的分割、截取

    文章目录 分割 截取的简单使用 简单分割 简单截取 升级版分割 截取的使用 url分割 id截取 或者截取其他由某种规则拼接起来的串儿 结尾 分割 截取的简单使用 简单分割 老师上课的时候大概会举类似的例子把 String str a b
  • 时序数据库InfluxDB介绍

    时序数据库InfluxDB介绍 1 什么是InfluxDB 2 那么时序数据有什么特点呢 3 对于时序数据 我们总结了以下特点 4 业务方常见需求 5 时序数据库为了解决什么问题 6 InfluxDB的优势 实时数据库与时序数据库 DBen
  • Unity中的资源管理-对象池技术(1)

    本文分享Unity中的资源管理 对象池技术 1 接下来几天 作者会按照自己的理解写几篇关于Unity中的资源管理相关的文章 大概会涉及到 对象池 分为普通类和GameObject 主要是预制 的对象池 引用计数技术 Unity中的资源基本概
  • Tesseract-OCR-05-主要API功能介绍

    Tesseract 05 主要API功能介绍 tesseract本身代码是由c c 混编而成的 其中有用的简单的接口函数几乎都是在baseapi h中 从其处理过程中 不难得出 它还需要有一个image处理的类 及相关的方法 这样子 读取图