Wie OCR eine Tiff-Datei mit Tesseract-Schnittstelle in C#?
Derzeit weiß ich nur, wie man es mit der ausführbaren Datei macht.OCR mit der Tesseract-Schnittstelle
Antwort
Der Quellcode schien auf eine ausführbare Datei ausgerichtet zu sein, Sie müssen möglicherweise ein paar Sachen neu verdrahten, damit es stattdessen als DLL erstellt wird. Ich habe nicht viel Erfahrung mit Visual C++, aber ich denke, es sollte nicht zu schwer mit etwas Forschung sein. Meine Vermutung ist, dass jemand bereits eine Bibliotheksversion erstellt haben könnte, Sie sollten Google ausprobieren.
Sobald Sie Tesseract-OCR-Code in einer DLL-Datei haben, können Sie die Datei dann über Visual Studio in Ihr C# -Projekt importieren und Wrapper-Klassen erstellen und alle Marshalling-Tools für Sie ausführen. Wenn Sie nicht importieren können, können Sie DllImport die Funktionen in der DLL von C# -Code aufrufen.
Dann können Sie sich die ursprüngliche ausführbare Datei ansehen, um Hinweise darauf zu finden, welche Funktionen aufgerufen werden, um ein TIFF-Bild korrekt zu adressieren.
Werfen Sie einen Blick auf tessnet
Dies ist besser als P/Aufruf selbst. –
+1 - Funktioniert ziemlich gut und Sie vergessen DllImports –
Haftungsausschluss: Ich arbeite für Atalasoft
Unsere OCR module supports Tesseract und wenn das gut genug, um nicht beweist, können Sie zu einem besseren Motor-Upgrade und nur eine Zeile Code ändern (Wir bieten eine gemeinsame Schnittstelle für mehrere OCR-Engines).
C# Programm startet tesseract.exe und liest dann die Ausgabedatei von tesseract.exe.
Process process = Process.Start("tesseract.exe", "out");
process.WaitForExit();
if (process.ExitCode == 0)
{
string content = File.ReadAllText("out.txt");
}
entdeckte ich heute, dass EMGU jetzt eine Tesseract Wrapper enthält. Während die Anzahl der nicht verwalteten dlls der opencv-lib etwas abschreckend wirken mag, ist es nichts, was eine schnelle Kopie in Ihrem Ausgabeverzeichnis nicht behebt. Von dort ist der eigentliche OCR-Prozess so einfach wie drei Zeilen:
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“ zusammen a very nice youtube video, die eine einfache, aber effektive Lösung demonstriert.
können Sie mir bitte zeigen, wie Sie Tesseract in C# verwenden konnten? – mouthpiec
beliebiger Beispielcode? – Kiquenet