Buchscan 3D Dewarp Algorithmus - Ansätze

sandreas

Mitglied
Hallo zusammen,

ich weiß, Buchscan-Software gibts (auch in Java) wie Sand am Meer. Es geht mir allerdings nicht nur um die Lösung des Problems, sondern auch um den Weg dahin, da ich mit Java noch nicht viel gemacht habe und es als eine Art erstes Projekt umgesetzt werden soll.

Hintergrund:
  • Konsolenanwendung mit Parametern ohne GUI Brimborium
  • Zunächst sollen die Kanten fotografierter Doppelbuchseiten auf schwarzem Untergrund erkannt werden
  • Dann die Buchseiten aufgeteilt und der schwarze Hintergrund weggeschnitten werden
  • Danach die geteilten Bilder der Seiten in ein PDF exportiert werden
  • Das erstellte PDF soll über PDF-X-Change-Viewer mit OCR-Daten versehen werden
Der Algorithmus der Seitenaufteilung und das Bilder exportieren in Einzelseiten (ohne PDF) ist in einer ersten Version fertig und funktioniert (für einen total unmathematischen Ansatz) auch ganz gut. Allerdings ist mir aufgefallen, dass die Buchseiten noch gewarpt sind, also die Rundung der Buchseiten verzerrt die Schrift auf den exportierten Bildern. Meine Recherchen haben ergeben, dass es zum Dewarpen sinnvoll/effektiv sein könnte, anhand von 2 Fotos ein 3D-Modell zu errechnen, dass die Verzerrung widerspiegelt und dieses Modell dann programmatisch "platt zu drücken", "zu bügeln", also dewarpen. (wie hier: http://www.fxpal.com/people/chiu/kim-13_DewarpingBook-MobilePhone_cbdar13.pdf). Die Position der Punkte zu finden, ist kein Problem, das habe ich schon hingekriegt (Point3D). Allerdings ist mir noch nicht klar, wie ich die Punkte geeignet speichern kann, so das es möglichst einfach ist, es später wieder auf das Bild anzuwenden.

Meine Fragen:
  • In der 2D Welt kann man das ganze ja mit Lines, Rectangles und Points berechnen. Aber wie kann man das mit einem 3D Modell machen? Point3D ist klar, aber gibt es irgend eine Klasse für eine Ebene / eine Map, in der ich 3D-Punkte hinzufügen kann und die dann wie eine 3D-Landschaft aussieht?
  • Wie kann man solch ein 3D-Modell wieder in ein 2D Modell umrechnen (Bügeln/Plattdrücken/Dewarpen)?
  • Wie kann ich diese Umrechnung wieder auf das Bild (BufferedImage) anwenden (ConvoleOp eventuell)?
Kurze Codebeispiele wären Cool, aber auch Links zu Konzepten und Algorithmen.

Linksammlung (nach Antworten):
3D Graphic Java: Render fractal landscapes | JavaWorld
http://www.fxpal.com/people/chiu/kim-13_DewarpingBook-MobilePhone_cbdar13.pdf
 
Zuletzt bearbeitet:

sandreas

Mitglied
Hallo,

als Ergänzung zum Thema habe ich mir mal ImageJ heruntergeladen. Dort gibt es ein Plugin, das sich:

Interactive 3D Surface Plot

nennt. Folgender Screenshot zeigt, was das Plugin kann und verdeutlicht auch, was ich vor habe:




Das Plugin erstellt aus den Farbräumen des Bilds ein 3D-Modell, dass die tatsächliche Lage des Buchs doch recht brauchbar abbildet.

Ich lese mich gerade in die Thematik ein, den Sourcecode des Plugins habe ich noch nicht angeschaut, falls es Open Source ist.

  • Kennt jemand eine Java-Bibliothek, die eine Ähnliche Umrechnung ohne die Notwendigkeit einer grafischen Ausgabe bewerkstelligt?
  • Weiß jemand, mit welchem Algorithmus ich die so errechneten Tiefenwerte für die Buchseiten in ein 2D-Modell umrechnen kann (quasi per Algorithmus die Seiten glatt Bügeln)? (so würden die Unebenheiten im Text ausgeglichen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Algorithmus für Arbeit mit fehlenden Listenelementen? Allgemeine Java-Themen 1
schegga_B AES-Algorithmus in javax.crypto Allgemeine Java-Themen 3
M Laufzeit des Prim Algorithmus Allgemeine Java-Themen 3
O Newton Algorithmus Java Allgemeine Java-Themen 1
CptK Backpropagation Algorithmus Allgemeine Java-Themen 6
N Google Authenticator Algorithmus (SHA1) Allgemeine Java-Themen 1
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
Zrebna Quicksort-Algorithmus - zufälliges Pivot wählen Allgemeine Java-Themen 6
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
B Algorithmus Warteschlange Ringpuffer wirklich fehlerfrei Allgemeine Java-Themen 8
M Probleme mit Negamax-Algorithmus Allgemeine Java-Themen 29
F Q - Learning Algorithmus Bug Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
M Minmax Algorithmus Verständnisproblem Allgemeine Java-Themen 2
H Rundreise frage (Algorithmus) Allgemeine Java-Themen 18
F KMP-Algorithmus Allgemeine Java-Themen 9
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
P MinMax Algorithmus Allgemeine Java-Themen 0
J Abhängigkeit zwischen Rechenzeit und Speicherbedarf in einen Algorithmus Allgemeine Java-Themen 7
K Djikstra-Algorithmus Allgemeine Java-Themen 1
T Minimax/Alphabeta Algorithmus hängt sich auf (?) Allgemeine Java-Themen 2
M Algorithmus zum Zahlen einteilen Allgemeine Java-Themen 8
O Best Practice Hilfe bei Algorithmus gesucht Allgemeine Java-Themen 10
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
S Rucksackproblem und genetischer Algorithmus Allgemeine Java-Themen 9
L Abbruch des Algorithmus Allgemeine Java-Themen 8
D Input/Output Ausgleichen chemischer Reaktionsgleichungen mit dem Gauß-Algorithmus Allgemeine Java-Themen 2
Messoras A*-Algorithmus integrieren Allgemeine Java-Themen 3
B Verteilungs-/Vergabe-Algorithmus mit abhängigen Score-Werten Allgemeine Java-Themen 3
Androbin "Shunting Yard"-Algorithmus Allgemeine Java-Themen 6
B Algorithmus - Project Euler Problem 18 Allgemeine Java-Themen 2
N Algorithmus zum bewerten von mathematischen Funktionen Allgemeine Java-Themen 11
O Algorithmus Optimierung Allgemeine Java-Themen 3
Joew0815 Algorithmus - Zahlenfolge in 4 ähnliche Teile aufteilen Allgemeine Java-Themen 0
O Tag Cloud Algorithmus Idee gesucht Allgemeine Java-Themen 2
A Implementierung eines Algorithmus (Farthest Insertion zur Lösung des TSP) in O(n²) Allgemeine Java-Themen 2
C Eclipse Probleme bei selbst erstelltem Algorithmus Allgemeine Java-Themen 2
H Graph-Algorithmus gesucht Allgemeine Java-Themen 21
N Algorithmus durch Workflow Allgemeine Java-Themen 7
M tree-based diff Algorithmus (Code-Vergleiche) Allgemeine Java-Themen 3
S Uhrzeit Algorithmus sale Allgemeine Java-Themen 11
N A*-Algorithmus Allgemeine Java-Themen 5
A Suche Algorithmus zum Erstellen eines planaren Graphen Allgemeine Java-Themen 5
F Methoden Algorithmus zur Gegnerfindung (Turnier) Allgemeine Java-Themen 9
T Algorithmus Graph Allgemeine Java-Themen 10
J Algorithmus gesucht (Stringtransformation) Allgemeine Java-Themen 4
B Algorithmus Krankenhausbelegung Allgemeine Java-Themen 17
S Algorithmus von Dijkstra Allgemeine Java-Themen 2
alex_fairytail OOP Banknoten Algorithmus Teil 2 Allgemeine Java-Themen 13
2 ArrayList aktualisieren Algorithmus Allgemeine Java-Themen 11
alex_fairytail Methoden Banknoten Algorithmus Allgemeine Java-Themen 10
R Codehinweise: Algorithmus Größenvergleich von n Zahlen Allgemeine Java-Themen 5
SuperSeppel13 WTF?! Algorithmus-Geschwindigkeitstest Allgemeine Java-Themen 2
L Algorithmus für kürzesten Weg mit Wegpunkten Allgemeine Java-Themen 21
C Algorithmus Problem in Minesweeper Allgemeine Java-Themen 5
S Algorithmus um Labyrinth zu erzeugen Allgemeine Java-Themen 6
V Problem mit A* Pathfinder-Algorithmus Allgemeine Java-Themen 2
S Algorithmus um nächst folgende Primzahl zu berechnen Allgemeine Java-Themen 7
S Algorithmus Problem. Rechtecke effizient auf Spielfeld anordnen. Allgemeine Java-Themen 7
C Algorithmus-Hilfe Allgemeine Java-Themen 20
J Algorithmus Längenkombinationen? Allgemeine Java-Themen 7
M Kombinationen über rekursiven Algorithmus berechnen? Allgemeine Java-Themen 10
L Algorithmus für Poker-Hände Allgemeine Java-Themen 7
chik 2 return werte für Greedy-Algorithmus (gelöst) Allgemeine Java-Themen 3
D Abstruse Probleme mit eigenem replace Algorithmus Allgemeine Java-Themen 11
P RC4 Algorithmus Allgemeine Java-Themen 3
D RSA Verfahren - Erweiterter Euklidischer Algorithmus Allgemeine Java-Themen 4
C IBAN und Bic Validieren (Algorithmus) Allgemeine Java-Themen 10
P Problem mit A*-Algorithmus Allgemeine Java-Themen 12
M Wörter Algorithmus Allgemeine Java-Themen 7
M Algorithmus für automatische Zeilenumbrüche Allgemeine Java-Themen 12
K Postleitzahlen Algorithmus Allgemeine Java-Themen 12
G Problem mit Algorithmus Allgemeine Java-Themen 3
T Hilfe bei einem Algorithmus Allgemeine Java-Themen 2
S Stemming-Algorithmus gesucht (z.B. Porter) Allgemeine Java-Themen 2
RoliMG präfix zu infix algorithmus Allgemeine Java-Themen 6
Z A*-Algorithmus - Probleme mit offener/geschlossener Liste Allgemeine Java-Themen 7
S Javaimplementierung des MD5 Algorithmus Allgemeine Java-Themen 2
E Container-Pack-Algorithmus Allgemeine Java-Themen 4
G k nearest neighbor algorithmus Allgemeine Java-Themen 7
C HASH Algorithmus 2 Strings ergeben das Selbe. Allgemeine Java-Themen 2
P Page Rank Algorithmus implementieren Allgemeine Java-Themen 7
T Problem RSA-Algorithmus in Java? Allgemeine Java-Themen 2
minzel Hash-Algorithmus Allgemeine Java-Themen 9
Y komprimierung mittels Huffman-Algorithmus, bit-shifting. Allgemeine Java-Themen 2
K Algorithmus Allgemeine Java-Themen 10
C Algorithmus für Array Allgemeine Java-Themen 9
I Verschlüsselung mit Pwd. - User soll Algorithmus wählen Allgemeine Java-Themen 4
J fällt euch ein Algorithmus ein? Allgemeine Java-Themen 4
S Algorithmus für Sudoku Allgemeine Java-Themen 17
N Euklidischer Algorithmus in Java und keine Terminierung. Allgemeine Java-Themen 7
F Algorithmus für Sortierung gesucht Allgemeine Java-Themen 15
T Algorithmus verbessern Allgemeine Java-Themen 10
U Suche Algorithmus zur bestimmung des längsten Wegs Allgemeine Java-Themen 3
U Ford-Fulkerson Algorithmus gesucht Allgemeine Java-Themen 1
U Dijkstra Algorithmus gesucht Allgemeine Java-Themen 4
D Algorithmus für die Erkennung fehlerhafter Eingaben Allgemeine Java-Themen 4
I hash-algorithmus Allgemeine Java-Themen 9

Ähnliche Java Themen


Oben