'moin die Forumsiker, tl;dr: meine Frage ist wie komme ich an die Parameter ran, welche gImageReader bei der verwendung von Tesseract-OCR konkret einsetzt? Hintergrund ist der Faden Beitrag "Knacknuss Text aus PDF extrahieren" Nach dem zwar guten aber nicht perfekten Einstieg in Tesseract per CLI, habe ich auch mit gImageReader Versuche angestellt auch wenn dies von Hand per Maus zu bedienen ist. Dabei habe ich freudig festgestellt dass dieser Weg 100% Erkennungsrate hinbekommt! (besser als wenn ich convert & tesseract auf der CLI selber anwerfe) Also moechte ich nun von gImageReader lernen, WIE da tesseract verwendet wird, damit ich mir das automatisieren kann. * Wie komme ich an die "Kommandozeilenparameter" ran welche gImageReader im Hintergrund verwendet? * nur ueber den Quellcode von gImageReader? * und wenn diese dynamisch an das konkret zum OCR-en vorgelegte "Bild" angepasst werden? Mir ist bewusst dass es nicht nur am Aufruf von tesseract liegen wird, sondern auch an den Parameter fuer das rendern der Pixelwueste und ev. auch am eingesetzten spell-checking. NB: bis ich herausfand dass gImageReader die Packete von hunspell benoetigt, vergingen ein paar Stunden Raetselraten denn gImageReaders Fehlermeldungen liefern kein brauchbarer Hinweis...
https://github.com/manisandro/gImageReader da wäre die Entwicklerseite. Ich habe es unter Ubuntu installiert und gelegentlich benutzt, aber noch nicht versucht irgendwelche Parameter zu verändern, wenn das überhaupt irgendwo möglich ist. Mit der Einstellung für Frakturschrift konnte ich alte Texte (nicht ganz so gut) erkennen, in der Zeit wurde eben noch von Hand gesetzt. Aber kommerzielle Programme wie FineReader verlangen für diese Möglichkeit einen Haufen zusätzliches Geld.
> Ich habe es unter Ubuntu installiert und gelegentlich benutzt, aber noch > nicht versucht irgendwelche Parameter zu verändern, wenn das überhaupt > irgendwo möglich ist. Ich habe keine Möglichkeit gefunden weder die Parameter einzusehen noch zu verändern. Zudem will ich ja gar nicht verändern sondern eben von gImageReader lernen = von gImageReader seine Parameter (sein Ablauf) übernehmen .
Eine Möglichkeit: Originale Programmdatei (/usr/bin/tesseract) umbenennen, anhängenden Programmschnipsel kompilieren, das Kompilat, an die Stelle der originaldatei setzen; der Schnipsel gibt nur die Aufrufparameter aus; Alten Zustand wiederherstellen.
R. M. schrieb: > Eine Möglichkeit: ich sehe im Quellcode von gImageReader folgendes: (Datei ".../gimagereader-3.1.2/gtk/src/Recognizer.cc")
1 | : |
2 | 307 bool Recognizer::recognizeImage(const Cairo::RefPtr<Cairo::ImageSurface> &img, OutputDestination dest) |
3 | 308 { |
4 | 309 tesseract::TessBaseAPI tess; |
5 | 310 if(!initTesseract(tess, m_curLang.prefix.c_str())){ |
6 | 311 Utils::message_dialog(Gtk::MESSAGE_ERROR, _("Recognition errors occurred"), _("Failed to initialize tesseract")); |
7 | 312 return false; |
8 | 313 } |
9 | 314 Glib::ustring output; |
10 | 315 Utils::busyTask([&]{ |
11 | 316 tess.SetImage(img->get_data(), img->get_width(), img->get_height(), 4, 4 * img->get_width()); |
12 | 317 char* text = tess.GetUTF8Text(); |
13 | 318 output = text; |
14 | 319 delete[] text; |
15 | 320 return true; |
16 | 321 }, _("Recognizing...")); |
17 | 322 if(dest == OutputDestination::Buffer){ |
18 | 323 MAIN->getOutputManager()->addText(output, false); |
19 | 324 }else if(dest == OutputDestination::Clipboard){ |
20 | 325 Gtk::Clipboard::get()->set_text(output); |
21 | 326 } |
22 | 327 return true; |
23 | 328 } |
24 | : |
also denke ich dass es nicht via externe Programme geht. Ist diese meine Annahme falsch? Gibt es eine andere Möglichkeit, Deinen Ansatz zu verfolgen (Aufruf von externen Programme zu protokollieren), als die vorhandene Systeminstallation (Lubuntu 16.04 LTS) zu verpfuschen, in dem Binaries ausgetauscht werden? JEDENFALLS Danke fuer's mitdenken! :-)
Hallo, es könnte auch sein das gImageReader das Bild selbst nochmal aufbereitet wie z.b. 300DPI, Blob-Detection, Spellchecker usw. Vielmehr stellt sich mir die Frage, ob du das richtige Wörterbuch und Language File benutzt hast. Hast Du Tesseract mit LSM genommen oder 3.04? Hast Du falsch erkanten Buchstaben selbst nochmal nachgelernt?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.