Entwickler-Ecke

Multimedia / Grafik - Barcode aus Bild erkennen


Flamefire - Do 29.11.12 15:14
Titel: Barcode aus Bild erkennen
Ich will in meinen Buchbestand mal Ordnung schaffen. Dazu muss ich per Programm den Barcode aus einem Foto des Buchrückens einlesen. Verschiedene Apps auf dem Handy schaffen das ja ohne Probleme. Gibt es also ein DLL/Komponente o.ä., die mir aus einem Bild (in beliebigen Format), das "größtenteils" aus dem Barcode besteht, den Barcode ausliest und als Text zurück gibt (Also die Nur natürlich)?
Wo finde ich so was?


Mathematiker - Do 29.11.12 17:08

Hallo Flamefire,
bisher habe ich noch keine (kostenlose!) Komponente gefunden, die EAN-Code, um den geht es Dir ja, aus einem Bild ausliest.

Aus diesem Grund habe ich vor einiger Zeit versucht, selbst EAN-Codes zu lesen. Meine eigenen Bemühungen füge ich dieser Nachricht an.
Es wird Deinen Wünschen nicht gerecht werden, da ich zum einen nur Bitmaps auswerte, zum anderen sollten diese "scharfe" EAN-Striche enthalten, d.h. Fotos gehen schlecht. :nixweiss:

Wie gesagt, es ist nur ein einfacher Test gewesen. Aber vielleicht kannst Du es ja selbst weiterentwickeln.
Außerdem haben wir in der EE doch einige richtige Profis. Wenn der eine oder andere etwas Zeit hat, könnte er ja eine Komponente daraus entwickeln. Ich kann sowas leider nicht. Aber bitte auch für Delphi 5, ich möchte es ja auch gern nutzen. :wink:

Wie werte ich den Code aus? Von der linken zu rechten Seite der Abbildung werden 94 Abschnitte untersucht und überprüft, ob dort die Strichfarbe auftritt. Daraus wird der Code ermittelt. Außerdem wird auch geprüft, ob ein korrekter Code gelesen wurde. Im Anhang habe ich sechs Bitmaps, bei denen es funktioniert.

Als erste Änderung könnte man Startpunkt und Endpunkt mittels Maus festlegen. Damit könnte man auch schräg liegende Codes erfassen. Wahrscheinlich müsste man auch eine gewisse Abweichung von der Hauptfarbe berücksichtigen, aber wie?

Beste Grüße
Mathematiker


mandras - Do 29.11.12 17:25

Zitat:
Wahrscheinlich müsste man auch eine gewisse Abweichung von der Hauptfarbe berücksichtigen, aber wie?


Ich werf' hier eine Idee in den Raum, ohne mich an der BC-Erkennung selbst praktisch versucht zu haben:

Nicht die Farben/Helligkeiten berücksichtigen sondern die "Ableitung" (Kanten) entlang von Schnitten verschiedener Winkel.
Dieses Vorgehen entspricht eher dem Verfahren, mit dem eine BC-Laserabtastung durchgeführt wird.

Edith flüsterte mir was ins Ohr:
http://www.codeproject.com/Articles/42852/Reading-Barcodes-from-an-Image-III


Delete - Do 29.11.12 17:40

- Nachträglich durch die Entwickler-Ecke gelöscht -


Christoph1972 - Do 29.11.12 23:22

user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
Dazu muss ich per Programm den Barcode aus einem Foto des Buchrückens einlesen.


Wäre diese Aufgabe nicht einfacher mit einem günstigen Barcodreader zu lösen? Oder habe ich hier was nicht verstanden :gruebel:


Flamefire - Do 29.11.12 23:36

jein. Barcodereader habe ich auch schon gedacht. Mit 15€ bei ebay für Einsteigermodelle und bei "Glück" ist man dabei.
Will aber nicht für sowas noch nen extra Gerät rumliegen haben. Ne Kamera und Programm tut es auch ;)

Speziell DTK Reader scheint die Aufgabe vernünftig zu lösen :) Viel probieren ist zwar angesagt aber sonst klappt das echt gut.


Mathematiker - Fr 30.11.12 00:28

Hallo,
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
Speziell DTK Reader scheint die Aufgabe vernünftig zu lösen :)

Ich will ja nicht unbedingt stänkern :roll: , aber:
15 € für den Barcode-Reader sind Dir zu viel, aber die viel höheren Lizenz-Gebühren für den DTK-Reader willst Du bezahlen?
Zitat:
Each software developer building applications based on DTK Software components requires a Developer License.

Verstehe ich nicht. :nixweiss:

Beste Grüße
Mathematiker


Christoph1972 - Fr 30.11.12 07:44

Du kannst ja den Buchrücken fotografieren und dann vom TFT Monitor abscannen.


Gerd Kayser - Sa 01.12.12 08:54

user profile iconChristoph1972 hat folgendes geschrieben Zum zitierten Posting springen:
Du kannst ja den Buchrücken fotografieren und dann vom TFT Monitor abscannen.

Das Eintippen der paar Ziffern unter dem Strichcode ist doch viel einfacher und weniger umständlich.


Christoph1972 - Sa 01.12.12 10:53

Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Auch wenn Flamefire 15000 Bücher hat? Abtippen ist auch immer Fehlerbehaftet. Vom Monitor abscannen ist auch nicht unüblich. In meiner Firma wird das bei einem Prozessleistsystem zur Rohstoff erfassung gemacht. Auf diese Weise kann man sehr leicht eine günstige Schnittstelle zu einem Programm schaffen, welches Barcodelable anzeigt.


Gerd Kayser - Sa 01.12.12 11:08

user profile iconChristoph1972 hat folgendes geschrieben Zum zitierten Posting springen:
Abtippen ist auch immer Fehlerbehaftet.
Dafür gibt es doch die Prüfziffern. Z. B. hier: http://www.arndt-bruenner.de/mathe/scripts/pruefziffern.htm

Buchrücken fotografieren, auf den PC übertragen, Bild auswerten, ggf. dazu noch eine extra Software schreiben ... Ich glaube nicht, daß das viel schneller als das Eintippen ist.


Christoph1972 - Sa 01.12.12 11:26

Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

Na ja, ich würde auch gleich den Barcode vom Buch scannen.