7

是否可以使用 Tesseract-OCR 获取已识别字符的字体,即它们是 Arial 还是 Times New Roman,无论是从命令行还是使用 API。

我正在扫描可能有不同部分和不同字体的文档,拥有这些信息会很有用。

4

2 回答 2

7

Tesseract在您可以使用WordFontAttributes的类中定义了一个 API 函数。ResultIterator

于 2013-03-28T23:31:14.203 回答
7

根据nguyenq 的 回答,我编写了一个简单的 python 脚本,打印每个检测到的字符的字体名称。该脚本使用 python lib tesserocr

from tesserocr import PyTessBaseAPI, RIL, iterate_level

def get_font(image_path):
    with PyTessBaseAPI() as api:
        api.SetImageFile(image_path)
        api.Recognize()
        ri = api.GetIterator()
        level = RIL.SYMBOL
    
        for r in iterate_level(ri, level):
            symbol = r.GetUTF8Text(level)
            word_attributes = r.WordFontAttributes()

            if symbol:
                 print(u'symbol {}, font: {}'.format(symbol, word_attributes['font_name']))

  get_font('logo.jpg')
于 2019-03-22T21:46:20.347 回答