Einzelnen Beitrag anzeigen

Dr.MAD

Registriert seit: 16. Jan 2006
18 Beiträge
 
#1

Dokument Scanner

  Alt 2. Apr 2010, 17:36
Hallo Delphi-Programmierer!



Der Dokument Scanner ist dafür geeignet unterschiedliche Dokument- bzw. Papierformate zu erkennen, zu beschneiden und abzuspeichern.

Das komplette Abbild wird ohne weitere "Scanner-Dialogabfrage" vom Scanner in ein TBitmap32 als Original übernommen.

Danach wird das Bild mit Helligkeit, Kontrast, u.a. in ein zweites TBitmap32 geflitert. In dem gefilterten Bild wird anschließend ein horizontaler und vertikaler Linienvergleich durchgeführt um den Rand des Dokumentes bzw. die Koordinaten zu lokalisieren.

Abschließend werden nun diese "Beschneidekoordinaten" dazu benutzt um das Dokument aus dem original TBitmap32 auszuschneiden. Die Filterung des Bildes wird somit nur zur Koordinatenermittlung benutzt.

Im Anhang findet Ihr eine gepackte Datei mit dem Design- und Sourcedode. Vorraussetzung ist GR32 und DelphiTwain.
Eine fertig ausführbare Datei zum Schnell-Test ist auch angehängt.

Hier schon mal die Unit im Klartext:
Luckie: Quellcode entfernt. Über 1200 zeilen müssen im Beitrag nicht sein.

Bedienungsanleitung:

Auf der linken Seite findet Ihr die Einstellungen für den Scanner. Damit kann man das Original-Bild bereits vom Scanner ordentlich erfassen. Jeder Scanner ist in der Ablichtung verschieden. Zu diesen Einstellungen gehören Helligkeit, Kontrast, Schwarz-Weiß-Schwelle (ab wann ein Pixel bei einer Kontrasterhöhung mehr zu dunkel oder zu hell gehört und somit tendenziell verstärkt wird), Auflösung (Resolution), Skalierung (Zoom) und Farbtyp. Wie bereits beschrieben dienen diese Einstellungen nur der Aufbereitung des Original-Bildes die schon vor dem scannen getroffen werden.

Ist das Abbild nun im Rechner kann es durch die Bildbearbeitung (Filterung), zu finden in der oberen mitte der Anwendung, zum Aufspühren der Kontur des Dokumentes aufbereitet werden. Meiner Erfahrung nach genügt es bereits die Helligkeit auf -10% herunter- und den Kontrast auf +30% heraufzuschieben. Es ist egal wie unschön dieses Bild jetzt erscheint es dient allein dazu um Ränder eines Blattes zu finden.

In den Controls darunter "Dokument-Erkennung" kann man einen Pixel-Einzug einstellen, ab wann der PC das Bild nach Rändern durchsuchen soll. Dies dient insbesondere dazu den Fehlerbereich am linken und rechten Rand des Bildes zu überspringen, da genau an diesen Stellen das erzeugte Licht des Scanners dunkler ist als zur Mitte hin. Die Fix-Checkboxes bedeuten, dass ab dem eingestellten Pixel-Punkt die Randerkennung fixiert bleibt. Dies dient dazu, wenn das Blatt immer mit der Kante am oberen Rand des Scanners liegt braucht genau dieser Rand nicht mehr erkannt werden.
Bsp-Einstellung: 20 Pixel links und rechts und oben auf 0 Pixel fixiert.
Die Randtoleranz bedeutet die Abweichung einer Linie in Prozent, wann ein Rand als Rand bestimmt wird.

Beschneiden und speichern sind selbsterklärend .

Das Vorschaufenster rechter Hand kann mit dem Maus-Wheel vergrößert und verkleinert werden. Dazu genügt ein Klick darauf damit das Control seinen Fokus erhält. Die Zoom-Richtung wird durch den Maus-Cursor bestimmt!

Viel Spaß beim Scannen .

Gruß

Dr. MAD

[edit=fkerber]Leerzeichen eingefügt, um Layout zu "retten". Mfg, fkerber[/edit]
[edit=Luckie]Quellcode entfernt. Mfg, Luckie[/edit]
Matthias
  Mit Zitat antworten Zitat