2008-08-27 119 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演示一個簡單而有效的解決方案。