使用 Tesseract 界面进行 OCR

问题描述 投票:0回答:5

如何在 C# 中使用 Tesseract 的界面 OCR tiff 文件?
目前我只知道如何使用可执行文件来做到这一点。

c# ocr tesseract
5个回答

11
投票

源代码似乎适合可执行文件,您可能需要稍微重新连接一些东西,以便将其构建为 DLL。我对 Visual C++ 没有太多经验,但我认为通过一些研究应该不会太难。我的猜测是有人可能已经制作了一个库版本,你应该尝试谷歌。

一旦 DLL 文件中包含了 tesseract-ocr 代码,您就可以通过 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();

“机器人学”放在一起一个非常好的 YouTube 视频,演示了一个简单但有效的解决方案。


0
投票

免责声明:我在 Atalasoft 工作

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

© www.soinside.com 2019 - 2024. All rights reserved.