Domanda

Come si esegue l'OCR di un file tiff utilizzando l'interfaccia di Tesseract in C#?
Al momento so solo come farlo utilizzando l'eseguibile.

È stato utile?

Soluzione

Il codice sorgente sembrava essere pensato per un eseguibile, potrebbe essere necessario ricablare un po' gli elementi in modo che venga invece creato come DLL.Non ho molta esperienza con Visual C++ ma penso che non dovrebbe essere troppo difficile con qualche ricerca.La mia ipotesi è che qualcuno potrebbe aver già realizzato una versione della libreria, dovresti provare Google.

Una volta che hai il codice tesseract-ocr in un file DLL, puoi importare il file nel tuo progetto C# tramite Visual Studio e fare in modo che crei classi wrapper ed esegua tutte le operazioni di marshalling per te.Se non puoi importare allora DllImport ti consentirà di chiamare le funzioni nella DLL dal codice C#.

Quindi puoi dare un'occhiata all'eseguibile originale per trovare indizi su quali funzioni chiamare per eseguire correttamente l'OCR di un'immagine tiff.

Altri suggerimenti

Dare un'occhiata a tessnet

Il programma C# avvia tesseract.exe e quindi legge il file di output di tesseract.exe.

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

L'ho scoperto oggi EMGU ora include un involucro Tesseract.Sebbene il numero di DLL non gestite della libreria opencv possa sembrare un po' scoraggiante, non è nulla che una copia veloce nella directory di output non possa risolvere.Da lì l'effettivo processo OCR è semplice come tre righe:

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

"robomatica" messa insieme un video di YouTube molto carino che dimostra una soluzione semplice ma efficace.

Disclaimer:Lavoro per Atalasoft

Nostro Il modulo OCR supporta Tesseract e se ciò si rivela non abbastanza buono, puoi passare a un motore migliore e modificare semplicemente una riga di codice (forniamo un'interfaccia comune a più motori OCR).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top