我正在Tesseract
为一些屏幕截图做 OCR。截图中的字符在raster fonts
. 但Tesseract
需要True Type Font
文件进行培训。
我可以在文件夹中找到许多真字体文件Windows/Fonts
。我想知道是否有一个用于光栅字体的?
我正在Tesseract
为一些屏幕截图做 OCR。截图中的字符在raster fonts
. 但Tesseract
需要True Type Font
文件进行培训。
我可以在文件夹中找到许多真字体文件Windows/Fonts
。我想知道是否有一个用于光栅字体的?
“光栅字体”不是真实的:OpenType(其中 truetype 是两种内部编码之一)是真正的字体,符合非常详细的权威规范,但光栅字体几乎是“没有单一规范,你可以发明任何你想要的东西,只要你的程序知道如何解压你制作的东西”。定义光栅/位图字体有很多不同的方法,它们基本上都是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 培训。超级有效!