2009-01-20 31 views

回答

7

我最近一直在研究这个问题。你最好的只是Tesseract。如果您需要在OCR上进行布局分析,而不是使用Ocropus(反过来使用Tesseract来执行OCR)。布局分析是指能够检测图像上的文本位置,并执行线段分割,块分割等。

我发现了一些真正好的提示,通过Tesseract实验值得分享。基本上我不得不为图像做很多预处理。

  1. 将您的输入图像放大/缩小为300 dpi。
  2. 从图像中去除颜色。灰度很好。我实际上使用了抖动阈值,并将输入设为黑白。
  3. 从图像中删除不必要的垃圾。 对于上述所有三个,我使用netbpm(一组用于unix的图像处理工具)来获得我所需要的几乎100%精度的点。

如果你有一个高度自定义的字体,并单独使用tesseract,你必须“训练”系统 - 基本上你必须喂养一堆训练数据。这在tesseract-ocr网站上有详细记录。你基本上为你的字体创建一个新的“语言”,并用-l参数传入。

我发现的另一种培训机制是Ocropus使用nueral net(bpnet)培训。它需要大量的输入数据来建立一个很好的统计模型。

在调用方面Tesseract/Ocropus都是C++。它不会像ReadLines(Image)那么简单,但有一个API可以检出。您也可以通过命令行调用。

+0

了解Ocropus的任何优秀文档....尤其是C++ api。 – Zombies 2009-01-27 19:19:07

5

虽然我不能特别推荐一个,但你要找的术语是OCR(光学字符识别)

+0

谢谢,这是有帮助的。无法在Google上找到我使用的任何内容。 – Zombies 2009-01-20 20:08:17

3

tesseract-ocr这是一个专业图书馆要做到这一点。

从那里网站

的正方体OCR引擎是在1995年的UNLV精度测试的前3引擎之一。1995年间和2006年它没有做任何工作,但它可能是最精确的开源OCR引擎之一

1

我想你想要的是Conjecture。曾经是libgocr项目。我已经使用了几年,但是如果您设置了密钥,它曾经非常可靠。

0

Tesseract OCR library给出了非常准确的结果,它是一个C和C++库。 我的初步结果大约80%准确,但在提供OCR之前对图像进行预处理后,结果的准确率大约为95%。 什么是预处理:

1)将位图二值化(B & W对我来说效果更好)。How it could be done

2)重采样图像为300 dpi

3)保存的图像中的无损格式,诸如LZW TIFF或CCITT组4 TIFF。