Laden...

[erledigt] Schief gescanntes Dokument "gerade rotieren"

Erstellt von mru vor 14 Jahren Letzter Beitrag vor 13 Jahren 5.422 Views
M
mru Themenstarter:in
18 Beiträge seit 2009
vor 14 Jahren
[erledigt] Schief gescanntes Dokument "gerade rotieren"

Hallöchen,

ich frage mich, ob es da vielleicht eine fertige Komponente gibt, welche (leicht) schief eingescannte Dokumente wieder richtig rotiert und schwarze Ränder abschneidet...

DIe andere Idee wäre Kantenerkennung selbst basteln, drehen, wegschneiden.
Aber davor scheue ich mich...

Gibt es eine fertige Lösung?

Gruß mru

1.820 Beiträge seit 2005
vor 14 Jahren

Hallo!

Hatte selbst schonmal so etwas gesucht, aber die Suche ist leider erfolglos geblieben (hab' aber auch nur ca. 1/2 Std. in Google gesucht). Auch selbstmachen ist nicht gerade einfach, da muss man erstmal einen einfachen Kantensuch-Algorithmus schreiben. Und das war mir dann auch zuviel.

Wenn du was im Netz findest, wäre ein Link-Verweis ganz nett.

Nobody is perfect. I'm sad, i'm not nobody 🙁

M
mru Themenstarter:in
18 Beiträge seit 2009
vor 14 Jahren

Na selbercoden ist auch mal ganz fein 😁
Will nur vermeiden, dass es das schon opensource irgendwo gibt 🤔

U
1.688 Beiträge seit 2007
vor 14 Jahren

Hallo,

Gibt es eine fertige Lösung?

http://unpaper.berlios.de/

1.820 Beiträge seit 2005
vor 14 Jahren

Hallo!

@ujr:
Danke für den Link, das Projekt kannte ich noch nicht.
Wenn man nach "deskewing" mittels Google sucht, findet man auch zahlreiche weitere Treffer, welche den grundlegenden Algorithmus erklären und mit zusätzlichem "C#" findet man auch .NET-Projekte.

Nobody is perfect. I'm sad, i'm not nobody 🙁

M
mru Themenstarter:in
18 Beiträge seit 2009
vor 14 Jahren

Super Leute,

ja google ist mächtig, aber man muss halt wissen wonach man sucht... 🤔

M
mru Themenstarter:in
18 Beiträge seit 2009
vor 14 Jahren

Was lange sucht, wird endlich gut 😁

DocumentSkewChecker Class

Kann geschlossen werden =)

946 Beiträge seit 2008
vor 14 Jahren

Noch eine schöne Lösung hier im Forum: Verdrehten Text in Bitmap zurückdrehen

mfg
SeeQuark

M
mru Themenstarter:in
18 Beiträge seit 2009
vor 14 Jahren

Wenn ich das so überfliege, wird zwar beschrieben wie ich ein Bild drehen kann, nicht aber wie ich den Winkel erkenne um den gedreht werden muss!

Gruß mru

946 Beiträge seit 2008
vor 14 Jahren

So wie ich das überflogen habe, wird das schon berechnet (mit EstimateBestShearXFactor bzw. EstimateBestShearXFactor, Kommentar am Anfang der Methode lautet: :::{style="color: green;"}X Scherung bestimmen){green}).

mfg
SeeQuark

M
mru Themenstarter:in
18 Beiträge seit 2009
vor 14 Jahren

Hmm ja, aber ist es denn eine "Scherung"?
http://de.wikipedia.org/wiki/Scherung_%28Geometrie%29
Wenn es schief eingescannt ist ändert sich nicht die Fläche wie bei einer Scherung.

Gruß mru

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo mru,

das Programm korrigiert die Transformation durch Anwenden von zwei Scherungen und kann damit auch Drehungen rückgängig machen.

herbivore

1.361 Beiträge seit 2007
vor 14 Jahren

Hi,

der Vollständigkeit halber unten noch zwei Formeln, an denen man sieht, wie man eine Rotation noch darstellen kann.

Bei Verdrehten Text in Bitmap zurückdrehen kann man beim ersten Bild gut erkennen (wenn man genau hinguckt und mal seinen Kopf dreht), dass der Text nicht nur verdreht sondern auch geschert war.
Deshalb musste dort quasi eine Drehung und eine Scherung geschätzt werden. Wenn man das mit unten stehenden Formeln auffasst, kann man das gleich in 2 Scherungen umrechnen (und die Skalierung außen vor lassen)

(wegen der versteckten Scherung konnte man dort also auch nicht die AForge-eigene Rotationsschätzung verwenden, die bei einer reinen Drehung allderings wegen der einmaligen Hough-Transformation effizienter sein sollte)

Im übrigen habe ich mal gehört/gelesen, dass manchmal eine Rotation auch durch 3 Scherungen implementiert wird, weil es effizienter umzusetzen sei. (Das trifft aber wohl nur zu, wenn keine gleichzeitige Glättung verwendet wird - und dann wirds pixelig)

beste Grüße
zommi

2.921 Beiträge seit 2005
vor 13 Jahren

Ergänzung:

seht mal nach bei Deskew in LowLevelGraphicsLibrary

Das sollte auch funktionieren.

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.