Also zunächst: auf dem Gebiet der Grafik bin ich kein Guru. Aber manchmal muss man sich halt durch solche Sachen durchkäpfen

mit viel Sucherei im Internet und Google habe ich mir auch vielen "Codebrüchen" den Code zusammengebastelt ... *sehr viel Arbeit*
Gluehwurm schrieb:
Also ganz verstanden hab ich das noch ned. Untersuchst du dein Bild zeilen-/spaltenweise, und versuchst du dann in einer solchen Scanline (Länge 30 pixel?) einen Barcode zu erkennen?
Also: Bild mit Strichcode drauf. Dann werden 30 Linien gezogen von links nach rechts, sodass die Linien senkrecht zu dem Barcode liegen. Jede Linie ist 1px dick. Dann werden die Farben von jeder Linie in ein Binärarray (also boolean-Array) umgewandelt. Das geschieht so: farbige Linie mit 1px Breite, die über den gesamten Barcode geht wird nun in ein sw-Bild umgewandelt und dann mit dem Schwellenwertverfahren in das Binärarray umgewandelt. Dann wird das Binärarray halt ausgewertet
Gluehwurm schrieb:
Dieser Ansatz ist imho nicht rotations-invariant, wird also nur in den seltensten Fällen klappen.
Ja, genau! Wenn der Strichcode gedreht ist, kann man das vergessen! Aber eine forderung von mir ist, dass der Strichcode gerade gehalten wird vom Anweder. Außerdem war ich überascht, dass der Algorithmus noch für Abweitungen von 10° funktioniert (in beide Richtungen) ... von daher benötige ich das garnicht ...

und wenn's der User nicht gerade hält ist das seine Schuld
Gluehwurm schrieb:
Welche Lücken? Wie können sie auftreten?
Es wird ja jetzt hingegangen und versucht aus jedem der 30 Binärarrays einen Strichcode zu lesen. Sollte nun an einigen Stellen eine Ziffer nicht lesbar sein und an anderen Stellen andere nicht lesbar sein, geht der Algorithmus hin und vergleicht per Mehrheitsentscheid jede einzelnen Stelle. So kann es z.B. sein, dass wenn die 3. Stelle nur in einem von den 30 Balken zu lesen war und sonst der Strichcode komplett gelesen werden konnte trotzdem der komplette Code herauskommt. Somit erhöht sich die Trefferwahrscheinlichkeit.
Gluehwurm schrieb:
Es wäre deswegen, auch mal interessant, wenn du mal Bilder von deinem Barcode zeigst, dann kann ich dir vielleicht mehr sagen, sonst wird es hier viel zu allgemein...
Das sind ganz normale Barcodes, wie auf Büchern, Coladosen etc., die ich fotografiere, dem Algorithmus gebe und zurück die EAN-13-Nummer erhalte. Also der Algorithmus gibt die EAN-13-Nummer zurück ...