2008-08-27 121 views
28

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

+3

你能指导我如何设法在C#中使用Tesseract? – mouthpiec 2010-03-11 10:44:38

+0

任何示例代码? – Kiquenet 2011-02-24 18:50:33

回答

10

源代码似乎适合于一个可执行文件,您可能需要重新连接东西一点,所以它会生成一个DLL而不是。我对Visual C++没有多少经验,但我认为对于一些研究来说不应该太难。我的猜测是,有人可能已经制作了一个图书馆版本,你应该尝试谷歌。

一旦在DLL文件中有tesseract-ocr代码,就可以通过Visual Studio将该文件导入到C#项目中,并让它创建包装类并为您完成所有编组任务。如果你不能导入那么DllImport会让你从C#代码中调用DLL中的函数。

然后,你可以看看原始的可执行文件,以找到哪些函数调用适当的OCR TIFF图像的线索。

0

声明:我Atalasoft

我们OCR module supports Tesseract工作,如果证明是不够好,你可以升级到一个更好的发动机,只是改变一行代码(我们为多个OCR引擎提供了一个通用接口)。

6

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包括正方体包装。虽然opencv lib的非托管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”放在一起a very nice youtube video演示一个简单而有效的解决方案。