在尝试使用FreeOCR(使用Tesseract引擎)之后,我得出结论,Tesseract的OCR引擎符合最近项目的质量要求。
但是,使用适用于Tesseract-OCR的.NET包装器(来自https://github.com/charlesw/tesseract),结果完全不同(并且非常糟糕)。即使将freessR中的tessdata目录复制到我的项目中之后:它也没有改进。
我注意到当我在FreeOCR中使用时,OCR =>启动OCR Process(在最顶层的菜单中)按钮进行处理,结果很好(就像我想要的VB程序一样)。但是当我使用OCR => OCR当前页面/ OCR所有页面(在带有下方大按钮的菜单中)结果与我的VB程序一样糟糕。它与此有关吗?有没有办法在不使用“页面”的情况下处理图像?
我尝试在引擎模式上有所不同,我尝试了所有模式(TesseractOnly,CubeOnly,TesseractAndCube和默认)。一些变化,但两者都不合理。
我尝试的另一件事是区分所有的PageSeg模式。很多不同,但仍然没有它应该的那么好。
在互联网上,我发现一些答案说:“你必须训练你的Tesseract”,好的,但是怎么样?如果FreeOCR的设置足够好,我怎么才能使用它们呢?
另外,我知道文本中经常会出现哪些词(但不仅限于这些词)。是否有可能至少训练这些词语?
我只是在我的Tesseract流程中使用以下代码。也许这不对?
Dim OCREngine As Tesseract.TesseractEngine = New Tesseract.TesseractEngine(AppDomain.CurrentDomain.BaseDirectory, "eng")
Dim OCRImage As Tesseract.Pix = Tesseract.PixConverter.ToPix(TheImg)
Dim Page As Tesseract.Page = OCREngine.Process(OCRImage)
Me.TextBox1.Text = Page.GetText()
提前致谢