【问题标题】:Is there true type font file for 'raster font'?'光栅字体'是否有真正的字体文件?
【发布时间】:2015-05-11 08:47:54
【问题描述】:

我正在使用Tesseract 对一些屏幕截图进行 OCR。截图中的字符在raster fonts。但是Tesseract 需要True Type Font 文件进行训练。

我可以在Windows/Fonts 文件夹中找到许多真字体文件。我想知道是否有一个用于光栅字体的?

【问题讨论】:

  • 考虑消除锯齿对光栅字体的影响。

标签: fonts tesseract raster truetype python-tesseract


【解决方案1】:

“光栅字体”虽然不是真实的:OpenType(其中 truetype 是两种内部编码之一)是真实字体,符合highly detailed, authoritative specification,但光栅字体几乎是“没有单一的规范,你可以发明任何你想要的东西,只要你的程序知道如何解开制作的东西”。定义光栅/位图字体的方法有很多种,基本上都是bitmap image + header that says which letter maps to which x/y/w/h rectangle in the image的形式。

OCR 不想使用它们,因为位图字体无法缩放:最简单的原因是“没有官方位图字体规范”,但即使有,如果您尝试将位图字体与OCR 结果然后整个页面的宽度或高度与您的位图字体需求相比甚至相差 1 个像素,这可能导致根本没有可匹配的文本。 Bbitmap 字体被编码为固定到字体大小(通常只有一种,有时不止一种,但仍然严格固定),因此如果扫描的文档不是完全正确的大小,任何像素都不会完全重叠,导致像 O 和 V 以相同的可靠性匹配 V 和 O 这样荒谬的事情,因为一个微小的垂直像素偏移可以使 V 和 O 重叠相同数量的错误像素。

另一方面,OpenType 字体使用矢量轮廓,并且可以缩放以与各种非常成功的算法进行最佳匹配。除非您扫描的文档“非常小”,否则矢量变换产生 90-100% 的匹配而不会出现任何问题。

您想要做的是点击 MyFont.com 的 What The Font! 之类的内容,然后在扫描的文档中放入一个句子(可能是两个),然后让它告诉您哪种字体最匹配,然后只需使用该字体进行 OCR 培训。超级有效!

【讨论】:

  • 谢谢。所以光栅字体的 OCR 似乎是不可能完成的任务。但我的场景是 OCR 屏幕截图,其中充满了光栅字符。是否有适合我的场景的 OCR 解决方案?
  • 只是标准的“找到靠近它的字体,然后让 OCR 发挥它的魔力”。它需要矢量轮廓以使 OCR 的任务甚至可以远程处理,即使源输入是纯位图。
  • 好的。我会尝试What The Font! 站点来检测靠近它的字体。
猜你喜欢
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 2013-01-09
  • 2018-09-14
  • 2020-09-24
  • 2020-12-31
相关资源
最近更新 更多