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-Key: 377612

Url: https://administrator.de/contentid/377612

Printed on: April 20, 2024 at 03:04 o'clock

Member: BassFishFox
BassFishFox Jun 20, 2018 at 23:47:46 (UTC)
Goto Top
Hallo,

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

Gruss
BFF
Member: Phreak87
Phreak87 Jun 21, 2018 at 18:58:47 (UTC)
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
Member: Phreak87
Phreak87 Jun 21, 2018 at 20:56:19 (UTC)
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.
Member: BassFishFox
BassFishFox Jun 22, 2018 updated at 00:59:37 (UTC)
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
Member: Phreak87
Phreak87 Jun 22, 2018 updated at 21:05:07 (UTC)
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 ...
Member: BassFishFox
BassFishFox Jun 23, 2018 at 01:19:31 (UTC)
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
Member: Phreak87
Phreak87 Jun 23, 2018 at 09:22:19 (UTC)
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
Member: BassFishFox
BassFishFox Jun 23, 2018 at 14:48:56 (UTC)
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
Member: Phreak87
Phreak87 Jun 24, 2018 at 16:36:53 (UTC)
Goto Top
Schreib mir einfach Mal ne Mail an nbhcrew@gmail.com - ist ja hier schon nicht mehr topic
Member: Phreak87
Phreak87 Jun 26, 2018 at 18:08:23 (UTC)
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
Member: BassFishFox
BassFishFox Jun 26, 2018 updated at 19:35:35 (UTC)
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