使用 Tesseract 和 Pyocr 在 Python 中获取字体大小

Posted

技术标签:

【中文标题】使用 Tesseract 和 Pyocr 在 Python 中获取字体大小【英文标题】:get Font Size in Python with Tesseract and Pyocr 【发布时间】:2017-01-12 11:20:00 【问题描述】:

是否可以使用pyocrTesseract 从图像中获取字体大小? 下面是我的代码。

tools = pyocr.get_available_tools()
tool = tools[0]
txt = tool.image_to_string(
      Imagee.open(io.BytesIO(req_image)),
      lang=lang,
      builder=pyocr.builders.TextBuilder()
)

在这里,我使用函数 image_to_string 从图像中获取文本。现在,我的问题是,如果我的文本也能得到font-size(number)。

【问题讨论】:

尝试将您的示例代码修改为minimal reproducible example。 【参考方案1】:

使用tesserocr,你可以在你的图片上调用Recognize后得到一个ResultIterator,为此你可以调用WordFontAttributes方法来获取你需要的信息。阅读该方法的文档以了解更多信息。

import io
import tesserocr
from PIL import Image

with tesserocr.PyTessBaseAPI() as api:
    image = Image.open(io.BytesIO(req_image))
    api.SetImage(image)
    api.Recognize()  # required to get result from the next line
    iterator = api.GetIterator()
    print iterator.WordFontAttributes()

示例输出:

'bold': False,
 'font_id': 283,
 'font_name': u'Times_New_Roman',
 'italic': False,
 'monospace': False,
 'pointsize': 9,
 'serif': True,
 'smallcaps': False,
 'underlined': False

【讨论】:

看起来这不再有效,可悲的是:/ github.com/tesseract-ocr/tesseract/issues/1074 虽然这很旧,但该方法仅适用于 Tesseract 3.0.5

以上是关于使用 Tesseract 和 Pyocr 在 Python 中获取字体大小的主要内容,如果未能解决你的问题,请参考以下文章

python OCR 图形识别

没有这样的文件或目录:'tesseract': 'tesseract' 即使在 pytesseract.py 中指定了在哪里可以找到 tesseract

学习python图像识别

pyOCR 没有可用的工具

pytesser3 使用说明

使用Pytesseract+Tesseract-OCR识别图片的简单步骤