Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Barcode Erkennung in Bildern (Jpg/TIF) (https://www.delphipraxis.net/62293-barcode-erkennung-bildern-jpg-tif.html)

Groba 2. Feb 2006 16:28


Barcode Erkennung in Bildern (Jpg/TIF)
 
Hallo Leute,

ich suche seit längerem nach einer guten, kostengünstigen Komponente zur
Barcode-Erkennung in Bildern (TIF/ JPG)... Es sollte das Erkennen des
1D Strichcodes Typ EAN 8 möglich sein.

Ich programmiere in Delphi 7.

Bei meiner Suche habe ich ein paar gute Ansätze gefunden:
Pegasus SmartScan Xpress Barcode (http://www.pegasusimaging.com/)
Inlite ClearImage Barcode 1D Pro (http://www.inliteresearch.com)

Beide haben in meinen Tests sehr gute Ergebnisse geliefert. Vor allem
die Komponenten von Pegasus sind sehr interessant.
Ihre Zuverlässigkeit der Barcode-Erkennung ist spitze.

Nur sind für meine Zwecke die Lizenzgebühren leider etwas zu
hoch.

Kennt jemand von euch andere Möglichkeiten?

Vielen Dank für eure Hilfe.....

Gruss
groba

alzaimar 3. Feb 2006 11:18

Re: Barcode Erkennung in Bildern (Jpg/TIF)
 
Na ja, ich weiss ja nich, wozu du sowas benötigst. Normalerweise nimmt man sich einen einfachen Scanner, schließt den per Keyboard-Wedge oder RS-232 an und fertig.

Groba 3. Feb 2006 16:08

Re: Barcode Erkennung in Bildern (Jpg/TIF)
 
Es soll der Strichcode auf digitalisierten Dokumenten (TIF) erkannt
werden um eine entsprechende Zuteilung des Dokumentes vorzunehmen.

Es sollte nicht notwendig sein beim digitalisieren der Dokumente (Scannen)
diese noch zusätzlich via einen Barcode-Scanner entsprechend zuzuweisen.

Dies wäre ein zusätzlicher nicht notwendiger Arbeitsschritt....
und soweit ich gelesen habe ist die Erkennung eines Barcodes in einer
Bilddatei nicht so eine riessen komplexe Sache und wie mir Tests
bestätigt haben auch absolut zuverlässig.

Ich habe einfach noch keine fertigen Komponenten dazu gefunden, welche
ohne teure und dazu mühsame (komplizierte) Lizenzverfahren auskommen.

Falls jemand Erfahrungen in dieser Hinsicht hat vielen Dank.....

DGL-luke 3. Feb 2006 16:25

Re: Barcode Erkennung in Bildern (Jpg/TIF)
 
mach es eben selber. über TJPEGImage oder was immer du verwendest solltest du ja an die Pixel rankommen und die Spezifikationen sollten ja offenliegen.

du kannst ja sogar deinem User einen "virtuellen Barcode-Scanner" in Form eines roten Strichs auf dem Dokument geben. Falls aber, wie die "Zuteilung" vermuten lässt, das ganze standardisiert ist, kannst du ja selber rausfinden wo der Barcode im Dokument steht.

shmia 3. Feb 2006 16:33

Re: Barcode Erkennung in Bildern (Jpg/TIF)
 
Zitat:

Zitat von Groba
und soweit ich gelesen habe ist die Erkennung eines Barcodes in einer
Bilddatei nicht so eine riessen komplexe Sache und wie mir Tests
bestätigt haben auch absolut zuverlässig.

Das täuscht !!
Die Erkennung eines Barcode in einem Bild ist ähnlich kompliziert wie OCR.
Wo fängt der Barcode an, wo hört er auf ? Ist der Code gedreht ?
Man schickt einen virtuellen Laserstrahl über das Bild; am Anfang waagerecht von oben nach unten,
später senkrecht von links nach rechts.
Man speichert das Hell-Dunkel-Muster in einem Array. Man analysiert die Anzahl der Wechsel.
Wenn das Programm "denkt" da ist ein Barcode, dann bewegt man den Strahl etwas rauf und runter
und schaut, ob dort das gleiche Muste liegt.
Falls ja, versucht man das Hell-Dunkel-Muster zu dekodieren. Man muss das in beiden Richtungen
versuchen; könnte ja sein der Barcode steht auf dem Kopf.

alzaimar 4. Feb 2006 18:30

Re: Barcode Erkennung in Bildern (Jpg/TIF)
 
Man darf bei einer Implementierung (die ich interessant fände) eins nicht vergessen (was die Sache vereinfacht). Scanner sind blöd. So richtig blöd. Also ist die Spezifikation eines Barcodes, also die das Verhältnis von breiten zu schmalen Strichen bzw. Zwischenräumen ziemlich eng gefasst.

Beim Drucken kann man also nicht einfach ein paar Rechtecke rendern und dann drucken, das klappt nämlich bei sehr kleinen Barcodes nicht mehr. Das Gleiche kann beim Scannen passieren. Kann, nicht muss.

Wenn Groba schon festgestellt hat, das das übersichtlich läuft, dann wird man also eine Lösung entwicklen können.

Die meisten Barcodes haben Start- und Stoppcodes, damit Barcodes zuverlässig erkannt und Fehllesungen (wenn nur ein Teil des Barcodes gelesen wird) vermieden werden können. Weiterhin sollte ein Barcode eine sog. Clearzone haben, das ist ein weisser Bereich links und rechts vom Code.

Wenn man nun einschränkt, nur Codes erkennen zu wollen, die auch ein normaler Scanner erkennt, dann sollte ein Sweeping wie von shmia vorgeschlagen, zum Erfolg führen. Es würde reichen, in einer Pixelreihe/Spalte nach den Spezifikationen (Clear zone, Hell/Dunkel wechsel im Bereich der Barcodespezifikation, Start/Stop-Codes, erkannte Codes etc.) einen Barcode zuverlässig zu erkennen.

Ein LCD-Scanner besitzt nur ein Zeilen-CCD und der Laserscanner sieht auch nur eine Zeile. Dann können wir das mit einer Pixelzeile auch.

Knifflig würde es nur bei schräg (>10°) aufgebrachten Codes, dann muss man eventuell mehrere Sweeps durchführen, und zwar jeweils um ein paar Grad gedreht. Damit sollte es kein Problem sein, einen Code zu erkennen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz