Python 如何从带有文本的图像中获取字体样式?
我正在通过AWS的Python API使用Python 如何从带有文本的图像中获取字体样式?,python,ocr,image-recognition,amazon-textract,Python,Ocr,Image Recognition,Amazon Textract,我正在通过AWS的Python API使用Amazon Textract API,从文档中提取文本(pdf或jpg)。我确实得到了它的边界框的文本和坐标,但我也希望有字体类型(只需要主要的字体:Arial、Helvetica、Verdana、Calibri、Times New Roman+其他一些) 有没有人有办法获取这段数据 最好的解决方案可能是一个包,它接受一个小图像,返回字体类型名称,我可以在我的服务器上运行它。一个外部API很可能太昂贵(金钱和时间方面),因为我必须在一秒钟内运行100多
Amazon Textract API
,从文档中提取文本(pdf
或jpg
)。我确实得到了它的边界框的文本和坐标,但我也希望有字体类型(只需要主要的字体:Arial、Helvetica、Verdana、Calibri、Times New Roman+其他一些)
有没有人有办法获取这段数据
最好的解决方案可能是一个包,它接受一个小图像,返回字体类型名称,我可以在我的服务器上运行它。一个外部API很可能太昂贵(金钱和时间方面),因为我必须在一秒钟内运行100多次
Amazon Textract返回的内容(不幸的是,没有字体类型):
到目前为止我做了什么
我实现了一个解决方案,该解决方案计算文本的宽度/高度比率,并通过使用Python的pillow包和不同的字体类型以编程方式绘制相同的文本,然后比较比率来进行比较。然而,这种启发式方法往往会导致错误的结果。目前,Amazon Textract不支持字体识别。这两个项目可能会帮助您:
- 论文:
- GitHub:
- GitHub:
{'BlockType': 'LINE',
'Confidence': 99.81985473632812,
'Text': 'This is a text',
'Geometry': {'BoundingBox': {'Width': 0.7395017743110657,
'Height': 0.012546566314995289,
'Left': 0.12995509803295135,
'Top': 0.2536422610282898},
'Polygon': [{'X': 0.12995509803295135, 'Y': 0.2536422610282898},
{'X': 0.8694568872451782, 'Y': 0.2536422610282898},
{'X': 0.8694568872451782, 'Y': 0.2661888301372528},
{'X': 0.12995509803295135, 'Y': 0.2661888301372528}]},
'Id': '59f42615-7f33-41d2-9f3c-77ae5e4b6e7a',
'Relationships': ...}