![]() |
TesseractOCR
Nutzt jemand TesseractOCR? Und kann mir weiterhelfen?
Ich finde da diverse Quellen auf Github. Ist das noch Zeitgemäß? Welche soll man nehmen? Ich habe auch noch ![]() Es gibt da Unklarheiten mit den notwendigen DLL's, bzw. mit den diversen Versionen. Gibt es da evtuell andere (free oder günstig) Möglichkeiten zur Texterkennung (in meinem Fall aus Images). |
AW: TesseractOCR
Mein Vorschlag wäre, installier Dir Pdf24, darunter gibt es Tesseract, was hervorragend funktioniert.
So musst Du nur ein einfaches Setup installieren und hast jede Menge Mehrwert plus OCR. :stupid: |
AW: TesseractOCR
Zitat:
Bei meiner schlägt's schon beim tesseract:=TTesseractOCR4.Create; in die Bresche. Und ich hab keine Ahnung was da fehlt. Laut madExcept hier:
Delphi-Quellcode:
was mich zur tesseractocr.capi bringt:
constructor TTesseractOCR4.Create;
begin if (hTesseractLib = 0) then raise Exception.Create('Tesseract library is not loaded'); FTessBaseAPI := TessBaseAPICreate(); //<----- Hier FPageLayout := TTesseractPageLayout.Create(FTessBaseAPI); end;
Delphi-Quellcode:
Was ja irgendein Aufruf in einer Dll sein dürfte. Doch da komm ich nicht weiter.
TfnTessBaseAPICreate = function: TessBaseAPI; cdecl;
Hab auch die DLL's alle gelöscht und mir mal PDF24 installiert. |
AW: TesseractOCR
Zitat:
![]() ImageEN bzw. IEVision für ImageEn verwendet ebenfalls Tesseract, ist aber komerziell. hth Ha-Joe |
AW: TesseractOCR
Zitat:
cu Ha Joe |
AW: TesseractOCR
Zitat:
|
AW: TesseractOCR
Zitat:
|
AW: TesseractOCR
Zitat:
Funktioniert aber super bei mir out-of-the-box, wenn es nur um das OCR'en geht.
Delphi-Quellcode:
@echo off
set path_caller=%~dp0 set par_in=%1 REM Ignore and remove the known file extension from the path set "file_in_plain=%1" REM Check, ob die Datei eine bekannte Endung hat for %%E in (.pdf .jpg .png) do ( if /i "%file_in_plain:~-4%"=="%%E" ( set "file_in_plain=%file_in_plain:~0,-4%" ) ) set file_in=%file_in_plain%.pdf set file_out=%file_in_plain%_ocred.pdf set path_pdf24=C:\Program Files\PDF24\ set pdf24_ocr="%path_pdf24%pdf24-Ocr.exe" echo . echo . Input %1 echo . Input = %file_in% echo . Output = %file_out% echo . echo . OCR the %file_in% to %file_out% echo . pause rem pdf24-Ocr.exe.lnk rem "pdf24-Ocr.exe.lnk" -outputFile "sichtkopie188806433_Test001_V05_ocred.pdf" -dpi 300 -deskew -autoRotatePages "sichtkopie188806433_Test001_V05.pdf " %pdf24_ocr% -outputFile "%path_caller%%file_out%" -dpi 300 -deskew -autoRotatePages "%path_caller%%file_in%" Ansonsten habe ich viele Versuche mit Python tesseract eingebunden, da gibt es verschiedene Ansätze, das ist aber viel mehr gefrickel, nur um eine Datei zu OCR'en. Die scheinen mehr oder weniger alle auf ![]() ![]() Dann würde ich aber doch lieber gleich aud Docling umsteigen ![]() Das lässt Dir über Python alle Möglichkeiten, bietet aber gleichzeitig auch eine CLI als "Kommandozeile" und kann außer verschiedenen OCR noch viel viel mehr. |
AW: TesseractOCR
Zitat:
![]() gefunden. Funktioniert gut, kann jedoch in der Free-Variante keine Files > 1 MB übertragen, dazu kommt die Laufzeit, und dass sie in der Free keine 24/7-Funktionalität garantieren. Und, auch wenn sie schreiben, dass sie nichts speichern, so möchte ich doch ungern möglicherweise mal kritische Daten durchs Internet jagen. |
AW: TesseractOCR
Zitat:
![]() ![]() ![]() Zitat:
![]() cu Ha-Jo |
AW: TesseractOCR
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
![]() hth Ha-Joe [1] ![]() [2] ![]() |
AW: TesseractOCR
Zitat:
![]() ![]() ![]() Das läuft (lief) auch 100% lokal, anscheinend haben die aber was "monetarisiert" und es geht vielleicht nicht mehr so ohne weiteres. Die Lizenzbedingungen hab ich gerade aktuell nicht gecheckt. Und das könnte auch interessant sein ![]() ![]() ![]() ![]() ![]() ![]() |
AW: TesseractOCR
Zitat:
Aber auch in TesseractOCR5 kam es zu diesem Fehler an dieser Stelle:
Delphi-Quellcode:
Ich werde das jetzt noch mal mit der Version probieren, die du gepostet hast.
constructor TTesseractOCR5.Create(const aDllPath:String);
begin if (hTesseractLib = 0) then begin InitTesseractLib(aDllPath); if (hTesseractLib = 0) then raise Exception.Create('Tesseract library is not loaded'); end; if hLeptonicaLib = 0 then begin InitLeptonicaLib(aDllPath); if (hLeptonicaLib = 0) then raise Exception.Create('Leptonica library is not loaded'); end; FTessBaseAPI := TessBaseAPICreate(); //<-----Hier FPageLayout := TTesseractPageLayout.Create(FTessBaseAPI); end; |
AW: TesseractOCR
Zitat:
Möglicherweise habe ich, weil ich erst mit der TesseractOCR4 getestet habe, dann mit der TesseractOCR5, dann noch mal wieder zurück, mir irgendwo selbst ein Bein gestellt. Soweit, so gut. An dieser Stelle erstmal: Vielen Dank für deine Hilfe. Die Erkennungsqualität ist aber .... bescheiden. Ich hab das mal mit einem Eingescannten Fahrzeugschein getestet. Ein paar Sachen erkennt er mal, mal aber auch leider mit falschen Buchstaben, was natürlich nicht so prickelnd ist, will man sich ja auch die Daten verlassen können. Fahrgestellnummer ist mal richtig und mal falsch (Unterschiedliche Fahrzeugschein, je nach Qualität). Die Scans sind aber schon in guter Auflösung. Wenn ich die gleichen Bilder in der Windows-Fotoanzeige öffnen, und dort gibt es ja auch eine OCR-Texterkennung, dann ist das Perfekt. Alles wird korrekt erkannt. (Leider, zumindest nach meinem Wissensstand, gibt es für die OCR in der Windows-Fotoanzeige keine API) Ich kann das natürlich nicht mit einem Freeware OCR vergleichen, das ist schon klar. Aber einen Vergleich mit kommerziellen OCR-Bibliotheken hab ich leider nicht. Hast du du (oder jemand anderes) da noch irgendwelche Tipps, wie ich bei TesseractOCR noch etwas mehr rausholen könnte? (z.B. Idealauflösung, vielleicht irgendwie Schriftarten trainieren) Ansonsten ist das schon recht cool, keine Rakete, aber cool. Was ich noch nicht hinbekommen habe ist den Fortschritt über OnReconizeProgressEvent. |
AW: TesseractOCR
Zitat:
![]() Use OCR component to retrieve text from image, for example from scanned paper document. uses Windows OCR engine and WinRT API requires Windows 10 or newer available for Delphi/C++Builder XE6 - 12 source code included in registered version royalty free distribution in applications Grüße Steku |
AW: TesseractOCR
Zitat:
Die Sprache (sofern korrekt installiert) kanst Du im Constructor angeben. Überprüfen ob die Sprache korrekt geladen ist (was der Fall ist wenn Sie richtig installiert ist) kannst Du mit IsLanguageLoaded bevor du weitermachst. In den meisten Fällen reicht das schon aus. Zitat:
Prinzipell kann es je nach verwendeten Bildmaterial auch noch was bringen ein Denoising durch zuführen, dunkle Bereich anzugleichen etc. Aber das wird dann schon recht aufwendig. Zitat:
hth Ha-Jö [1] ![]() [2] ![]() [3] ![]() [4] ![]() [5] ![]() |
AW: TesseractOCR
Noch ein Nachtrag.
Ich habe die Version 5.0 in meinem Downloadlink gehabt. Normalerweise ist das Team um Tesseract sehr konsvervativ und verändert die API nicht innerhalb von zwei Versionen. Du kannst also, zusätzlich zu meinen bereits vorhandenen Tipps auch ausprobieren eine neuere Version zu installieren. Das bringt vermutlich nicht so viel, aber es kann trotzdem helfen. Für Windows 32 ist die letzte gültige Version ![]() alle anderen findest Du hier ![]() Ha-Jo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz