我正在为 Tesseract OCR 引擎使用 c# tessnet2 包装器来捕获图像文件的字符。我一直在到处搜索 tessnet2 是否有任何内置函数来覆盖某些字符并将它们保存到它正在读取的同一个图像文件中,但没有找到任何相关的内容。所以我想做的是根据我从 tessnet2 收到的内容创建一个新的想象文件,但我需要以相同的方式创建新图像,但只更改新创建的图像中的一些内容。我不确定我是否使用了正确的方法,或者是否有其他 c# 程序集允许您从图像文件中读取字符,同时允许您根据需要进行操作。
问问题
1290 次
2 回答
1
祝你好运——但 tess 无法用正确的字体替换。光栅图形通常不存储字形信息。即使是这样,您也可能会违反与您要书写的字体相关的许可和/或版权。我不是 OCR 方面的专家,但我会自信地说,这不是现成的东西在野外。
于 2012-08-09T03:07:18.310 回答
0
扩展布赖恩的回答:您需要自己做。我没有使用过 Tesseract,但我使用过 Nuance OCR 引擎。它将返回字体信息以及它已识别的字符的坐标(请注意,您很可能必须计算实际的图像坐标,因为 OCR 引擎会在执行识别之前对图像进行校正)。一旦你得到坐标和纠偏以便计算实际坐标,你就可以使用任何图像处理库(Leadtools、Accusoft 等)或直接 GDI+ 函数来清除字符,然后使用字体信息和大小信息创建一个新角色并将其合并到图像中。这不是微不足道的,但肯定是可行的。
编辑:当我写最初的答案时已经很晚了,想澄清字体信息
的含义。 OCR 引擎将为您提供有关点大小、粗体/斜体和字体系列(Seriph 等)的信息。我不知道有哪一种能告诉您文档所在的确切字体。如果您有要处理的文档样本,那么您可以根据 OCR 引擎提供的信息做出很好的猜测。
于 2012-08-09T03:12:01.173 回答