phreak87
Goto Top

ImageMagick wellige Seiten geradeziehen

Hallo,

ich bin dabei eine Software zu schreiben, die über ImageMagick aus Kamerabildern
Dokumentseiten extrahiert und dann optimiert und als PDF speichert. Das Extrahieren
mit Distort klappt prima mit 4 Punkten. Bei manchen welligen Dokumenten bekomme
ich allerdings das Problem dass ich zusätzliche Räume habe, die ebenfalls gezerrt werden
müssten wie hier zu sehen: (Ich meine nur den oberen schwarzen Balken)

o2

Gibt es hier eine *einfache* Lösung in ImageMagick um das Problem zu lösen?

Content-ID: 377612

Url: https://administrator.de/forum/imagemagick-wellige-seiten-geradeziehen-377612.html

Ausgedruckt am: 22.12.2024 um 08:12 Uhr

BassFishFox
BassFishFox 21.06.2018 um 01:47:46 Uhr
Goto Top
Hallo,

Schau mal ob das hier weiter hilft.
http://mytech.fiala.cc/foto/verzerrung-und-entzerrung

Gruss
BFF
Phreak87
Phreak87 21.06.2018 um 20:58:47 Uhr
Goto Top
Danke für deine Antwort,

leider arbeitet der Barrel immer auch im entgegengesetzten Blatteil wo
sich keine Verzerrungen befinden. Momentan versuche ich eine einfachere
Lösung über Imagemagick zu Realisieren, die das Bild in 2 Einzelbilder aufteilt,
diese dann perspektivisch entzerrt und dann wieder 1 daraus macht. mal sehen
ob die Schrift dann an der Trennstelle gestückelt ist face-sad
Das Optimum ist das sicher nicht. Mit 10 Koordinaten erreiche ich leider auch keine
wirklich guten Ergebnisse. => Vielleicht hat ja hier jemand einen Tipp für Imagemagick
wie ich am besten mit dem Raster arbeite ...

Danke
Phreak87
Phreak87 21.06.2018 um 22:56:19 Uhr
Goto Top
Das Ergebnis wird nicht so schlecht wie erwartet.

Im Bild wird die unterste Stelle in der Mitte markiert welche nach oben gezogen
werden soll. Danach erstelle ich 2 Teilbilder daraus (1* links und 1*rechts).
Auf die beiden Teilbilder wende ich dann den ImageMagick Perspective mit
jeweils 4 Punkten an, indem ich die Ecken nach oben ziehe.

das Ergebnis sieht dann so aus:
output2

Wenn ihr eine bessere Lösung kennt lasst es mich bitte wissen.
BassFishFox
BassFishFox 22.06.2018 aktualisiert um 02:59:37 Uhr
Goto Top
Garnicht so uebel. face-smile

Ich hab mal die OCR von NAPS2 dureber gehen lassen, was die erkennt sind die dunkler gefaerbten "Woerter".

2018-06-21 20_24_04-window

Das zweite Bild ist die OCR von Acrobat 11.

2018-06-21 20_32_04-window

Durch die Wellenform der Saetze wird wohl jede OCR etwas "zu tun" habe. Warum aber in diesem Fall Adobe Acrobat jaemmerlich schlechter ist wie NAPS2 ist mir unerklaerlich.

Am Ende wirst Du wohl nicht darum herum kommen, dass das Ausgangsmaterial "bessere" Qualtitaet haben muss. Bei uns wurden Seiten wie Du im Bild hast tatsaechlich "gebuegelt" damit abfotografiert werden konnte. Die spaeter eingesetzten Hochleistungsscanner waren da ein riesiger Fortschritt.

Die Erkennung von Text in wellenfoermigen Saetzen etc. scheint schon fast eine eigene Wissenschaft zu sein.

BFF
Phreak87
Phreak87 22.06.2018 aktualisiert um 23:05:07 Uhr
Goto Top
NAPS2 ist ein echt guter Tipp, durch die Tatsache das ich ja selbst ein Programm wie NAPS2
in .Net schreibe gibt mir dieses Teil einiges an Stoff den ich mit einbringen kann. Super Tipp!

NAPS2 verwendet eine Tesseract 3.04 Engine mit Leptonica, diese ist beim geradeziehen von
Texten vermutlich besser als die von Adobe. Ich verwende mittlerweile schon Tesseract4 weil
der schon mit KI Methoden arbeitet und nochmal bessere Ergebnisse liefert. Die Wellenform der
Texte kriegt man vermutlich eh nie gebügelt ... (außer mit Bügeln :D - auch ein guter Tipp)
Dieses Dokument habe ich selbst geknittert :D Normalerweise sehen die Dokumente nicht so wild
aus, die haben halt den berühmten Briefumschlagsknick.

Aktueller Stand ist jetzt:

Ein Hilfsprogramm um die Umrisse des Dokuments zu markieren, danach die Einzelpunkte an
die richtige Stelle schieben (Was auch die Zeilen dazwischen mit betrifft ... )
Die Quell- und Zielkoordinaten dann als Text ausgeben und mit
ImageMagick -distort 3 {Koordinaten} Ausgabedatei.jpg durchrechnen lassen ...
unbenannt

Das Ergebnis sieht dann so aus:
a2_3

Ich glaube mit einfachen Mitteln ist da jetzt echt nicht mehr rauszuholen ...
BassFishFox
BassFishFox 23.06.2018 um 03:19:31 Uhr
Goto Top
Liest sich echt interessant was Du da treibst. face-smile

Wenn ich mich recht erinnere hatte ABBY FineReader auch schon so eine GeradeMachFunktion, an der Du arbeitest. Die hatten/haben auch SDK die vielleicht fuer Dich interessant sein koennten, wenn Du es nicht schon weisst. face-smile

Schoenes WE!
BFF
Phreak87
Phreak87 23.06.2018 um 11:22:19 Uhr
Goto Top
Wenn du an dem Projekt mitarbeiten möchtest, gerne. Ich stell es dann auf git und du kannst Ideen beitragen und testen.

https://github.com/Phreak87
BassFishFox
BassFishFox 23.06.2018 um 16:48:56 Uhr
Goto Top
Danke fuer das Angebot. face-smile

Zusaetzlich setze ich mal meinen Luetten darauf an, ok der Luette ist jetzt in der 12. face-big-smile
Das was Du schon auf Github hast, ist wohl auch das was ihn interessiert.
Ich geb im mal den Link, wenn er seine Magendarmgrippe ueberwunden hat.

BFF
Phreak87
Phreak87 24.06.2018 um 18:36:53 Uhr
Goto Top
Schreib mir einfach Mal ne Mail an nbhcrew@gmail.com - ist ja hier schon nicht mehr topic
Phreak87
Phreak87 26.06.2018 um 20:08:23 Uhr
Goto Top
Hast du vielleicht auch eine Idee wie ich aus einem Bild den Bereich in dem das Dokument liegt hausfinden kann? Also Handybild wo irgendwo in der Mitte ein Dokument ist ... Ansonsten mach ich noch extra topic auf
BassFishFox
BassFishFox 26.06.2018 aktualisiert um 21:35:35 Uhr
Goto Top
Also Du hast "Vorlagen". face-wink

Meine Idee waere es mit Kontrastunterschieden zu versuchen.
Sprich das Stueck Papier ist meist heller, die Umgebung des Papieres meist dunkler. Ok, geht nicht, wenn das Papier auf einem weissen Untergrund liegt.

Am Ende wuerde ich die Auswahl des "Dokumentes" in eine Vorauswahl bringen bevor zugeschnitten wird.

Aber! Ich kann mir sehr wohl vorstellen, dass eine OCR Probleme mit diesem Ausschnitt haben wird, da die Vergroesserung des Textes zu pixelig ist.

BFF