使用 Tesseract 和 Pyocr 在 Python 中获取字体大小
Posted
技术标签:
【中文标题】使用 Tesseract 和 Pyocr 在 Python 中获取字体大小【英文标题】:get Font Size in Python with Tesseract and Pyocr 【发布时间】:2017-01-12 11:20:00 【问题描述】:是否可以使用pyocr
或Tesseract
从图像中获取字体大小?
下面是我的代码。
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 中获取字体大小的主要内容,如果未能解决你的问题,请参考以下文章
没有这样的文件或目录:'tesseract': 'tesseract' 即使在 pytesseract.py 中指定了在哪里可以找到 tesseract