zoukankan      html  css  js  c++  java
  • Tesseract--主要API功能介绍

    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)

  • 相关阅读:
    5555
    3333
    4444
    试验2
    Android之TextView灵活使用(转载)
    Android之使用Android-query框架进行开发(一)(转载)
    Android 之Html的解析(使用jsoup)
    Android之动画的学习(转载)
    Android之官方下拉刷新控件SwipeRefreshLayout
    Android之sqlite的使用 (转载)
  • 原文地址:https://www.cnblogs.com/supercxm/p/9049724.html
Copyright © 2011-2022 走看看