关于带有Tesseract界面的c#:OCR

关于带有Tesseract界面的c#:OCR

OCR with the Tesseract interface

如何在C#中使用Tesseract的界面对tiff文件进行OCR?
目前,我只知道如何使用可执行文件来执行此操作。


看看tessnet


源代码似乎适合于可执行文件,您可能需要重新连接一些内容,以便将其构建为DLL。我没有使用Visual C ++的丰富经验,但是我认为进行一些研究不应太难。我的猜测是有人可能已经制作了库版本,您应该尝试使用Google。

在DLL文件中包含tesseract-ocr代码后,您就可以通过Visual Studio将文件导入到C#项目中,并让它创建包装器类并为您做所有编组工作。如果无法导入,则DllImport将允许您从C#代码中调用DLL中的函数。

然后,您可以查看原始可执行文件,以找到有关调用哪些函数以正确OCR一张tiff图像的线索。


C#程序启动tesseract.exe,然后读取tesseract.exe的输出文件。

1
2
3
4
5
6
Process process = Process.Start("tesseract.exe","out");
process.WaitForExit();
if (process.ExitCode == 0)
{
    string content = File.ReadAllText("out.txt");
}

我今天发现EMGU现在包括一个Tesseract包装器。尽管opencv lib的非托管dll的数量似乎有些令人生畏,但这并不是快速复制到输出目录无法解决的问题。从那里开始,实际的OCR过程只需三行即可:

1
2
3
Tesseract ocr = new Tesseract(Path.Combine(Environment.CurrentDirectory,"tessdata"),"eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ONLY);
this.ocr.Recognize(clip);
optOCR.Text = this.ocr.GetText();

"机器人技术"汇集了一个非常不错的youtube视频,展示了一种简单而有效的解决方案。


免责声明:我为Atalasoft工作

我们的OCR模块支持Tesseract,如果证明还不够好,您可以升级到更好的引擎,而只需更改一行代码即可(我们为多个OCR引擎提供了一个通用接口)。


推荐阅读