使用Tesseract接口进行OCR

33

如何在C#中使用Tesseract的接口对tiff文件进行OCR?
目前我只知道如何使用可执行文件来完成。


3
你能否指导我如何在C#中使用Tesseract? - mouthpiec
5个回答

40

这比自己调用P/Invoke更好。 - Callum Rogers

10

这段源代码似乎是为可执行文件设计的,你可能需要稍微调整一下才能将其构建为DLL文件。我对Visual C++并不是很有经验,但我认为通过一些研究应该不会太难。我的猜测是,可能已经有人制作了库版本,你可以试试在Google上搜索。

一旦你将tesseract-ocr代码放入DLL文件中,就可以通过Visual Studio将该文件导入到C#项目中,并创建包装类和完成所有的封送处理。如果无法导入,则DllImport将允许你从C#代码中调用DLL中的函数。

然后,你可以查看原始可执行文件,以找到正确OCR一个tiff图像所需使用的函数。


7

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

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

6
我今天发现EMGU现在包括一个Tesseract封装器。虽然opencv库的未管理dll数量似乎有点令人生畏,但只需快速将其复制到输出目录即可解决。从那里开始,实际的OCR过程只需要三行代码:
Tesseract ocr = new Tesseract(Path.Combine(Environment.CurrentDirectory, "tessdata"), "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ONLY);
this.ocr.Recognize(clip);
optOCR.Text = this.ocr.GetText();

"Robomatics"组合了一个非常好的YouTube视频,展示了一个简单但有效的解决方案。


0

声明:我在Atalasoft工作

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接