使用 Tesseract-OCR 获取已识别字符的字体
Posted
技术标签:
【中文标题】使用 Tesseract-OCR 获取已识别字符的字体【英文标题】:Get font of recognized character with Tesseract-OCR 【发布时间】:2013-03-18 17:23:15 【问题描述】:是否可以,即它们是 Arial 还是 Times New Roman,无论是从命令行还是使用 API。
我正在扫描可能有不同部分和不同字体的文档,拥有这些信息会很有用。
【问题讨论】:
【参考方案1】:Tesseract 在 ResultIterator
类中定义了一个 API WordFontAttributes
函数,您可以使用它。
【讨论】:
在最近的 Tesseract 版本中,WordFontAttributes
似乎无论如何都会返回None
。 github.com/tesseract-ocr/tesseract/issues/1074
是的,我明白为什么,因为它现在使用的是神经网络。感谢您提供更多更新。【参考方案2】:
基于nguyenq'sanswer,我编写了一个简单的python脚本,打印每个检测到的字符的字体名称。此脚本使用 python 库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')
【讨论】:
使用了什么配置和版本的 tesseract、tessdata 和其他依赖项?我将 word_attributes 设为 None以上是关于使用 Tesseract-OCR 获取已识别字符的字体的主要内容,如果未能解决你的问题,请参考以下文章
Tesseract-OCR编译及ViewerDebugging使用
Tesseract-OCR编译及ViewerDebugging使用
使用Python,OpenCV进行Tesseract-OCR绑定及识别