DE69629930T2 - Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes - Google Patents

Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes Download PDF

Info

Publication number
DE69629930T2
DE69629930T2 DE69629930T DE69629930T DE69629930T2 DE 69629930 T2 DE69629930 T2 DE 69629930T2 DE 69629930 T DE69629930 T DE 69629930T DE 69629930 T DE69629930 T DE 69629930T DE 69629930 T2 DE69629930 T2 DE 69629930T2
Authority
DE
Germany
Prior art keywords
vector
sub
images
vectors
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69629930T
Other languages
English (en)
Other versions
DE69629930D1 (de
Inventor
Claudio Saporetti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Datalogic SpA
Original Assignee
Datalogic SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Datalogic SpA filed Critical Datalogic SpA
Publication of DE69629930D1 publication Critical patent/DE69629930D1/de
Application granted granted Critical
Publication of DE69629930T2 publication Critical patent/DE69629930T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1478Methods for optical code recognition the method including quality enhancement steps adapting the threshold for pixels in a CMOS or CCD pixel sensor for black and white recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Toxicology (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)

Description

  • Die Erfindung betrifft ein Verfahren zum Festlegen bzw. Lokalisieren eines auf einem Objekt angebrachten Codes.
  • Die Erfindung betrifft auch ein Gerät zum Implementieren des Verfahrens.
  • Das Dokument US-A-5,504,319 offenbart eine Vorrichtung und ein Verfahren zum Bestimmen des Ortes eines Strichcodes in einer Abbildung, indem statistische Eigenschaften jedes Pixelfensters bestimmt werden, welches einen Abschnitt der Abbildung bildet.
  • Es sind Systeme zum Lokalisieren von optischen Codes, insbesondere Strichcodes, die auf Objekten angebracht sind, welche sich auf Transporteinrichtungen (beispielsweise Transportbändern) bewegen, und zum Bestimmen der Präsenz und der Anordnung im Raum des Codes bekannt. Bekannte Geräte nutzen normalerweise Laser-Lokalisierungs- und Laser-Lese-Systeme. Bekannte Arten dieser Geräte haben jedoch mehrere Nachteile: schlechte Zuverlässigkeit infolge der großen Anzahl von sich bewegenden mechanischen Teilen, die involviert sind; begrenzte omnidirektionale Lesefähigkeit; fehlende Fähigkeit zum Lesen zweidimensionaler Codes; und schlechte Möglichkeit zum Lesen von plastikbeschichteten Codes.
  • Um diese Nachteile zu überwinden, wurden Systeme mit optischen Sensoren (insbesondere Telekameras) zum Aufnehmen eines zweidimensionalen Bildes des Objekts und zum Auswählen eines dem Code entsprechenden Abschnittes des Bildes ausgestattet. Solche Systeme können auch den Code in dem ausgewählten Bildabschnitt lesen, haben jedoch den Nachteil, daß eine komplexe Verarbeitung einer großen Menge von Daten umfaßt ist.
  • Aufgabe der Erfindung ist es, ein Verfahren zum Festlegen bzw. Lokalisieren eines auf einem Objekt angebrachten optischen Codes anzugeben, welches eine schnelle, effektive Lokalisierung des Codes ermöglicht.
  • Erfindungsgemäß ist ein Verfahren zum Lokalisieren bzw. Festlegen eines auf einem Objekt angebrachten optischen Codes geschaffen, mit: einem Bilderfassungsschritt, in welchem wenigstens ein Bild (I) eines Objekts, welches den Code trägt, erfaßt wird; einem ersten Verarbeitungsschritt, in welchem das erfaßte Bild (I) in eine Anzahl von Elementarbildern (If) unterteilt wird, von denen jedes eine vorbestimmte Anzahl (N) von Pixeln umfaßt, und jedem Pixel ein Pixel-Helligkeitswert zugeordnet wird; einem zweiten Verarbeitungsschritt, in welchem für jedes der Elementarbilder (If) ein Helligkeitsverlaufsvektor (G) berechnet wird; einem ersten Vergleichsschritt, in welchem aus den berechneten Verlaufsvektoren (G) die Vektoren ausgewählt werden, deren Betrag über zumindest einem Grenzwert (Glim) liegt und die schnelle Helligkeitsänderungen darstellen; einem Umwandlungsschritt, in welchem die Winkel der zuvor ausgewählten Verlaufsvektoren mit einem Faktor multipliziert werden, welcher vom Typ des optischen Codes abhängt; einem Kachelbildungsschritt, in welchem das erfaßte Bild (I) in eine Anzahl von Unterbildern (Ip) zerteilt wird, wobei jedes Unterbild (Ip) eine Anzahl von Elementarbildern (If) umfaßt; einem Zusammensetzungsschritt, in welchem die zuvor umgewandelten Verlaufsvektoren eines ausgewählten Unterbildes (Ip) addiert werden, um einen Gesamtverlaufsvektor (Gs) zu berechnen; einem zweiten Vergleichsschritt, in welchem der Gesamtverlaufsvektor (Gs) von jedem Unterbild (Ip) mit Referenzwerten verglichen wird, um signifikante Unterbilder auszuwählen, die eine ausreichende Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleiche Richtung haben; wobei den signifikanten Unterbildern ein erster binärer Logikwert zugeordnet wird; wobei der zweite Vergleichsschritt auch nicht signifikante Unterbilder festlegt, die eine begrenzte Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleiche Richtung haben; wobei den nicht signifikanten Unterbildern ein zweiter binärer Logikwert zugeordnet wird; und wobei das Verfahren zumindest ein binäres Endbild (Ir) erzeugt, welches das erfaßte Endbild (Ir) zerteilt in die Unterbilder (Ip) darstellt, wobei jedes über einen entsprechenden binären Logikwert verfügt.
  • Wenn der optische Code ein Strichcode ist, wird der mittels des Verlaufsvektors in Bezug auf ein kartesisches Referenzsystem gebildete Winkel (a) während des Umwandlungsschritts vorzugsweise verdoppelt.
  • Während des Umwandlungsschritts wird der durch den Verlaufsvektor in Bezug auf ein kartesisches Referenzsystem gebildete Winkel (a) vorzugsweise mit einem Faktor multipliziert, welcher der Seitenanzahl der geometrischen Figur entspricht, welche das Einheitselement des optischen Codes bildet. Wenn der optische Code ein zweidimensionaler Code ist, dessen Einheitselement durch vier Seiten definiert ist, wird der Winkel (a) mit einem Faktor vier multipliziert; wenn das Einheitselement durch sechs Seiten definiert ist, wird der Winkel (a) mit einem Faktor sechs multipliziert.
  • Das erfindungsgemäße Verfahren liefert eine schnelle und effektive Lokalisierung des erfaßten und dem Code entsprechenden Bildabschnitts, so daß der Code-Lesealgorithmus nur für die Abschnitte arbeitet, die dem Bild des optischen Codes entsprechen, und der Umfang der zu verarbeitenden Information wird im Vergleich zu der, welche mittels der Telekamera aufgenommen wird, wesentlich reduziert. Darüber hinaus wird keine Information infolge des Verkürzens von Vektoren verloren, die den gleichen Weg aber entgegengesetzte Richtungen aufweisen.
  • Erfindungsgemäß ist weiterhin ein Gerät zum Lokalisieren bzw. Festlegen eines auf einem Objekt angebrachten optischen Codes geschaffen, mit: Bilderfassungsmitteln zur Erfassung von mindestens einem Bild (I) eines Objekts, welches den Code trägt; ersten Verarbeitungsmitteln, in welchen das erfaßte Bild (I) in eine Anzahl von Elementarbildern (If) zerteilt wird, von denen jedes eine vorbestimmte Anzahl (N) von Pixeln umfaßt, wobei jedem Pixel ein Pixel-Helligkeitswert zugeordnet wird; zweiten Verarbeitungsmitteln, in welchen für jedes der Elementarbilder (If) ein Helligkeitsverlaufsvektor (G) berechnet wird; ersten Vergleichsmitteln, in welchen aus den berechneten Verlaufsvektoren (G) die Vektoren ausgewählt werden, deren Betrag über zumindest einem Grenzwert (Glim) liegt und die schnelle Helligkeitsänderungen darstellen; Umwandlungsmitteln, in welchen die Winkel der zuvor ausgewählten Verlaufsvektoren mit einem Faktor multipliziert werden, welcher von dem Typ des optischen Codes abhängt; Kachelbildungsmitteln, in welchen das erfaßte Bild (I) in eine Anzahl von Unterbildern (Ip) zerteilt wird, wobei jedes Unterbild (Ip) eine Anzahl von Elementarbildern (If) umfaßt; Zusammensetzungsmitteln, in welchen die zuvor umgewandelten Verlaufsvektoren eines ausgewählten Unterbildes (Ip) addiert werden, um einen Gesamtverlaufsvektor (Gs) zu berechnen; zweiten Vergleichsmitteln, in welchen der Gesamtverlaufsvektor (Gs) von jedem Unterbild (Ip) mit Referenzwerten verglichen wird, um signifikante Unterbilder auszuwählen, die eine ausreichende Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleichen Richtungen haben, wobei den signifikanten Unterbildern ein erster binärer Logikwert zugeordnet wird; wobei die zweiten Vergleichsmittel auch nicht signifikante Unterbilder festlegen, die eine begrenzte Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleiche Richtung haben, wobei den nicht signifikanten Unterbildern ein zweiter binärer Logikwert zugeordnet wird; und wobei das Gerät zumindest ein binäres Endbild (Ir) erzeugt, welches das erfaßte Bild zerteilt in die Unterbilder (Ip) darstellt, wobei jedes über einen entsprechenden binären Logikwert verfügt.
  • Wenn der Code ein Strichcode ist, verdoppeln die Umwandlungsmittel vorzugsweise den Winkel (α), der durch den Verlaufsvektor in Bezug auf ein Referenzsystem gebildet wird.
  • Die Umwandlungsmittel vervielfachen vorzugsweise den durch den Verlaufsvektor in Bezug auf ein kartesisches Referenzsystem gebildeten Winkel (a) um einen Faktor, welcher der Seitenanzahl der geometrischen Figur entspricht, welche das Einheitselement des optischen Codes bildet. Wenn der optische Code ein zweidimensionaler Code ist, dessen Einheitselement durch vier Seiten definiert ist, ist der Faktor vier; wenn der optische Code ein zweidimensionaler Code ist, dessen Einheitselement durch sechs Seiten definiert ist, ist der Faktor sechs.
  • Die Erfindung wird im folgenden anhand von Ausführungsbeispielen unter Bezugnahme auf eine Zeichnung näher erläutert. Hierbei zeigen:
  • 1 eine schematische Darstellung eines automatischen Lesegeräts, welches das erfindungsgemäße Verfahren implementiert;
  • 2 ein Schaltungsblockdiagramm eines Details des Geräts nach 1;
  • 3 Schritte des erfindungsgemäßen Verfahrens; und
  • 412 wie das erfindungsgemäße Verfahren zum Festlegen des Codes arbeitet.
  • Das Bezugszeichen 1 in 1 bezeichnet ein automatisches Lesegerät für einen optischen Code mit einem Lesekopf 5, der einem Lauf- bzw. Förderband 6 zugewandt ist und zum Scannen von auf dem Förderband 6 angeordneten Objekten 7 dient, die sich entlang eines geraden horizontalen Weges D bewegen und jeweils einen optischen Code auf der Fläche 7a aufweisen, die dem Lesekopf 5 zugewandt ist. Der Begriff „optischer Code" soll eine Folge von graphischen Markierungen auf einem Schild oder direkt auf dem Objekt (oder irgendeinem anderen Untergrund) darstellen, wobei Information codiert ist in Form einer Folge von schwarzen oder weißen oder variierend gefärbten Bereichen, die entlang eines oder mehrerer Wege bzw. Bahnen angeordnet sind. Beispiele für optische Codes sind zweidimensionale und gefärbte Strichcodes.
  • In dem dargestellten Beispiel weist das Objekt 7 einen Strichcode BC in Form einer Anzahl von geraden, parallelen, alternierend hellen und dunklen Strichen auf.
  • Das Gerät 1 umfaßt eine elektronische Verarbeitungs- und Steuereinheit 12, die mit dem Lesekopf 5 zusammenarbeitet.
  • Das Gerät 1 umfaßt auch einen Sensor 14, der entlang des Lauf- bzw. Förderbands 6 angeordnet ist, um die Höhe von sich auf dem Band bewegenden Objekten 7 zu bestimmen; einen Sensor 15 zum Bestimmen der Präsenz der Objekte 7 in der Nähe des Lesekopfes 5; und einen Geschwindigkeitssensor 16 zum Bestimmen der Bewegungsgeschwindigkeit des Bandes (und damit der beförderten Objekte) in Bezug auf den Lesekopf 5.
  • Das Gerät 1 umfaßt weiterhin eine Beleuchtungseinrichtung 17 zum Beleuchten des mit Hilfe des Lesekopfes 5 gescannten Bandabschnitts.
  • Gemäß 2 umfaßt der Lesekopf 5 eine lineare (beispielsweise CCD) Telekamera 20 zum Scannen bzw. Abtasten einer Linie 6a des Bandes (entweder fortlaufend oder wann es die Sensoren 14, 15 und 16 erlauben) und eine Schaltung 22 zum Verarbeiten der Ausgangssignale, die von der Telekamera 20 erzeugt werden. Die Schaltung 22 umfaßt einen Filter 24, der am Eingang mit dem Ausgang der Telekamera 20 verbunden ist, einen Bildspeicher 26, der am Eingang mit dem Ausgang der Telekamera 20 verbunden ist, und eine programmierbare Datenverarbeitungseinheit (digitaler Signalprozessor – DSP) 28, welcher mit dem Filter 24 und dem Speicher 26 zusammenarbeitet.
  • 3 zeigt ein Blockdiagramm des Arbeitszyklusses der Verarbeitungsschaltung 22.
  • Insbesondere setzt sich gemäß 3 ein Startblock 100 zu einem Block 110 fort, in welchem die mittels der Telekamera 20 gescannten Linien 6a elektronisch zusammengesetzt werden, um ein zweidimensionales Bild (gespeichert im Speicher 26) des Förderbands 6 und/oder der Objekte 7 und so ein digitales Bild I zu bilden, welches eine Matrix von Pixeln umfaßt, die jeweils durch eine Gesamtanzahl charakterisiert sind, die ihr Grauniveau definiert. Das erfaßte digitale Bild I kann ein oder mehrere Objekte 7 auf dem Förderband 6 umfassen, die einen oder mehrere optische Codes tragen.
  • Auf den Block 110 folgt ein Block 120, in welchem das erfaßte digitale Bild I in eine Anzahl von Elementarbildern (Fenster) If zerteilt wird, die jeweils eine vorbestimmte Anzahl N von Pixeln umfassen.
  • Gemäß 4 können die Fenster If beispielsweise vier Pixel umfassen.
  • Auf den Block 120 folgt ein Block 130, in welchem ein Helligkeits-Verlaufsvektor G für jedes Fenster If des Bildes I berechnet wird.
  • Wenn in dem dargestellten Ausführungsbeispiel (Vier-Pixel-Fenster) A, B, C und D die jeweiligen numerischen Werte der Helligkeit der Pixel in dem Fenster sind, wird der Verlaufsvektor gemäß den folgenden Gleichungen berechnet: GX = C – B GY = D – A α = arctg(GY/GX),wobei GX und GY die Komponenten des Verlaufsvektors G entlang der X- und der Y-Achse (4) und α der Winkel zwischen dem Gradienten bzw. Verlauf und der X-Achse eines kartesischen Referenzsystems sind, in welchem sich die X-Achse entlang der Diagonalen von Pixeln B, C und die Y-Achse entlang der Diagonalen von Pixeln A, D erstrecken.
  • Auf den Block 130 folgt ein Block 140, welcher die Größe jedes berechneten Verlaufsvektors mit einem Schwellwert Glim vergleicht, der in dem Initialisierungsschritt gebildet wird. Wenn der Wert des Verlaufsvektors unter dem Schwellwert ist, folgt auf den Block 140 ein Block 150, in welchem der Verlaufsvektor, der als nicht signifikant erachtet wird, da er nur graduelle Abweichungen der Helligkeit repräsentiert, gelöscht wird. Umgekehrt (Block 190 folgt auf Block 140) bleibt der berechnete Verlaufsvektor, welcher als signifikant erachtet wird, da er scharfe Helligkeitsabweichungen repräsentiert, für eine folgende Verarbeitung erhalten.
  • Block 190 führt eine sogenannte „S-Transformation" jedes vorher berechneten und ausgewählten Verlaufsvektors aus. Insbesondere, wenn der optische Code ein Strichcode ist, wird der Winkel α jedes Verlaufsvektors verdoppelt (5).
  • Der Transformationsoperator in Block 190 ist in der Lage, von einem Gradienten- bzw. Verlaufsraum (definiert durch Größe, Weg und Richtung) zu einem Weg- bzw. Pfadraum (definiert durch Größe und Weg/Pfad) überzugehen, so daß zwei Gradienten bzw. Verläufe mit der gleichen Größe und dem gleichen Weg aber entgegengesetzten Richtungen in den selben Weg-Raumvektor abgebildet werden, wenn sie S-transformiert werden. Wenn die S-Transformation nicht ausgeführt würde, ergebe der Mittelvektor von zwei Vektoren der selben Größe und des selben Wegs aber mit entgegengesetzten Richtungen offensichtlich ein Nullergebnis, und die mit den Verläufen verbundene Information würde verloren gehen. Um einen Strichcode zu lokalisieren, welcher eine Anzahl von alternierenden schwarzen Strichen und weißen Zwischenräumen umfaßt, müssen sowohl schwarzweiß- als auch weißlschwarz-Übergänge, d. h. Vektoren mit entgegengesetzten Richtungen, berücksichtigt werden.
  • Zwei Verlaufs- bzw. Gradientenvektoren G1 und G2 der gleichen Größe und mit dem gleichen Weg aber entgegengesetzten Richtungen haben den selben Betrag |G| und jeweilige Winkel α1 und α2, wobei α2 = α1 + 180°. Durch die S-Transformation wird der Winkel des Vektors G1 gleich 2α1, und der Winkel des Vektors G2 wird gleich 2α2 = 2(α1 + 180°) = 2α1 + 360°, d. h. der Vektor G1 ist jetzt parallel zum Vektor G2 und hat die gleiche Richtung.
  • Andere zweidimensionale optische Codes, beispielsweise die sogenannten „ID-MATRIX"-Codes, umfassen quadratische schwarze oder weiße Einheitselemente und beinhalten das Identifizieren von Änderungen der Helligkeit von weiß zu schwarz und von schwarz zu weiß in vier senkrechten Richtungen, d. h. die Identifizierung von vier Verlaufsvektoren der selben Größe und bei 90° zueinander (d. h. mit jeweiligen Winkeln α, α + 90°, α + 180°, α + 270°). In diesem Fall multipliziert die S-Transformation im Block 190 die Winkel der vier Verlaufsvektoren mit vier, um vier Verläufe zu erzeugen, die alle den selben Weg 4a aufweisen, und die vier S-transformierten Vektoren werden addiert, um einen Vektor mit der vierfachen Größe der Gradientenvektoren und des Wegs 4a zu bilden.
  • Andere zweidimensionale Codes, beispielsweise „MAX-ICODES", umfassen hexagonale schwarze oder weiße Einheitselemente und beinhalten die Identifizierung von Änderungen der Helligkeit von weiß zu schwarz und von schwarz zu weiß in sechs Richtungen, so daß sich sechs Gradientenvektoren der gleichen Größe und bei 60° zueinander ergeben (d. h. mit entsprechenden Winkeln α, α + 60°, α + 120°, α + 180°, α + 240°, α + 300°). In diesem Fall multipliziert die S-Transformation in Block 190 die Winkel der sechs Verlaufsvektoren mit sechs, um sechs Verläufe zu erzeugen, die alle den gleichen Weg 6a aufweisen, und die sechs S-transformierten Vektoren werden addiert, um einen Vektor mit der sechsfachen Größe der Gradientenvektoren und mit dem Weg 6a zu bilden.
  • Allgemein ausgedrückt, multipliziert die S-Transformation die Winkel der Verlaufs- bzw. Gradientenvektoren für einen beliebigen Typ eines zweidimensionalen optischen Codes mit einem Faktor, der gleich der Anzahl von Seiten des Einheitselements ist, aus dem der Code gebildet ist. Speziell liefert die S-Transformation eine Umwandlung der vorher ausgewählten Verläufe, um einen vorbestimmten Weg und eine vorbestimmte Richtung zu bestimmen, die allen berechneten Verlaufsvektoren zugeordnet sind.
  • Auf den Block 190 folgt ein Block 200, in welchem jeder Verlaufsvektor G, der im Block 190 transformiert wurde, dem nächstliegenden einer Folge von Referenzvektoren angenähert wird (Verlaufsvektor-Quantisierung). Die Referenzvektor-Folge kann vier erste Einheitsvektoren, die zueinander senkrecht sind, und vier zweite Vektoren umfassen, die zueinander senkrecht sind und einen 45°-Winkel zu den ersten Vektoren bilden (6).
  • Auf den Block 200 folgt ein Block 210, in welchem bestimmt wird, ob alle Fenster If die in Block 120 definiert werden, untersucht wurden (und die relativen Verlaufsvektoren berechnet sind). Im Fall einer negativen Antwort (die Fenster If werden immer noch untersucht) geht der Block 210 zurück zum Block 130, um einen weiteren Verlaufsvektor zu berechnen. Im umgekehrten Fall (alle Fenster If sind untersucht) geht der Block 210 zu 215.
  • Block 215 gruppiert die quantisierten Verläufe des Bildes I in eine Anzahl von Teilfolgen (Teilbilder) oder Kacheln Ip, welche mittels des Zerteilens des erfaßten Bildes I in eine Anzahl von Teilbildern (Kacheln) Ip gebildet werden, wobei jedes eine Anzahl von Fenstern If umfaßt. Beispielsweise können die Kacheln Ip 100 Pixel des Originalbildes I und deshalb (in dem dargestellten Beispiel) 25 Fenster If (welche jeweils vier Pixel umfassen) umfassen.
  • Der nächste Verarbeitungsschritt liefert die Bestimmung, welche Abschnitte des digitalisierten Originalbildes I Verlaufsvektoren enthalten, was Helligkeitsübergänge anzeigt, die mit dem Typ des lokalisierten optischen Codes kompatibel sind. Beispielsweise umfaßt ein Strichcode, der parallele, Seite an Seite angeordnete schwarze und weiße Striche umfaßt, das Identifizieren von schwarz zu weiß und weiß zu schwarz Helligkeitsänderungen in zwei Richtungen, was zwei Verlaufsvektoren des selben Weges aber mit entgegengesetzten Richtungen liefert.
  • Auf den Block 215 folgt ein Block 220, welcher die in den Blöcken 190, 200 verarbeiteten Verlaufsvektoren addiert und einen Teil eines Unterbildes Ip bildet. Dieses bedeutet, daß die S-transformierten und quantisierten Verlaufsvektoren der verschiedenen Fenster If zusammengesetzt werden, um einen Gesämtverlaufsvektor Gs relativ zu der momentan ausgewählten Kachel Ip zu erzeugen.
  • Auf den Block 220 folgt ein Block 230, in welchem der Gesamtverlaufsvektor Gs mit den Schwellwerten verglichen wird (Referenzschwellwerte). Wenn der Gesamtverlaufsvektor Gs die Schwellwerte überschreitet, geht Block 230 zu Block 240. Im umgekehrten Fall (der Gesamtverlaufsvektor Gs ist unterhalb der Schwellwerte) geht Block 230 zu Block 250.
  • In einem X, Y kartesischen Referenzsystem können die Schwellwerte durch die Seiten eines Quadrats Q repräsentiert werden (7 und 8). Wenn in diesem Fall ein Ende des Gesamtverlaufsvektors Gs in das Quadrat Q (8) fällt, geht Block 230 zu Block 250. Im umgekehrten Fall (ein Ende des Gesamtverlaufsvektors Gs ist außerhalb des Quadrats Q– 7) geht Block 230 zu Block 240. Die 7 und 8 zeigen auch ein Quadrat Q2, welches den maximalen möglichen Wert des Gesamtverlaufsvektors Gs repräsentiert.
  • Die im Block 240 bestimmte Situation ist die, in welcher der Wert des Gesamtverlaufsvektors in dem Wegraum den Schwellwert übersteigt, so daß die fragliche Kachel Ip in diesem Fall als signifikant betrachtet wird, da sie eine ausreichende Anzahl von Verlaufsvektoren mit signifikanter Größe und im wesentlichen der gleichen Richtung bzw. dem gleichen Weg umfaßt (mögliche Präsenz eines optischen Codes und im beschriebenen Ausführungsbeispiel eines Strichcodes). Der ausgewählten Kachel Ip wird deshalb ein erster Logikwert (insbesondere eine logische „1") zugeordnet, der anzeigt, daß die Kachel Ip als signifikant betrachtet wird.
  • Die im Block 250 dargestellte Situation ist die, daß der Wert des Gesamtverlaufsvektors in dem Wegraum unterhalb des Schwellwerts ist, so daß in diesem Fall die fragliche Kachel als nicht signifikant betrachtet wird, weil sie eine nicht ausreichende Anzahl von Verläufen mit signifikanter Größe und im wesentlichen gleichem Weg umfaßt. Der ausgewählten Kachel wird deshalb ein zweiter Logikwert (insbesondere eine logische „0") zugeordnet, die anzeigt, daß die Kachel als nicht signifikant betrachtet wird.
  • Auf die Blöcke 240, 250 folgt ein Block 260, welcher bestimmt, ob alle Kacheln Ip des Bildes I untersucht wurden. Im Fall einer negativen Antwort (das Bild wird immer noch untersucht) geht Block 260 zurück zu Block 220, um eine weitere Kachel Ip zu untersuchen. Im umgekehrten Fall (Untersuchung des Bildes I abgeschlossen) geht Block 260 weiter zu Block 270.
  • Die Ausgabe von Block 260 ist ein binäres Endbild Ir (9), welches das Bild I zerteilt in eine Anzahl von aneinander grenzenden Kacheln Ip zeigt, die jeweils einen Logikwert „1" (signifikante „schwarze" Kachel), wenn sie wahrscheinlich optische Codebilder umfassen, oder einen Logikwert „0" (nicht signifikante „weiße" Kachel) aufweisen, wenn sie wahrscheinlich keine optischen Codebilder enthalten. Die Elementareinheit, durch welche das Endbild Ir repräsentiert ist, hat die gleiche Größe wie die Kachel Ip. Dieses bedeutet, daß die Kacheln Ip die Pixel des Endbildes Ir bilden.
  • Das Endbild Ir wird dem nächsten Block 270 zugeführt, in welchem die Informationsmenge für die folgende Verarbeitung weiter reduziert wird, zusätzlich zu der graduellen, drastischen Reduktion, welche durch den vorhergehenden Prozeß bis zu diesem Punkt bereits ausgeführt wurde.
  • Die im Block 270 ausgeführte Operation (bekannt als Glätten) ersetzt den binären Wert einer ursprünglichen Kachel Ip im Endbild Ir mit dem der Mehrheit von benachbarten Kacheln und sorgt für eine Begrenzung des Effekts des Erfassungsrauschens und für eine Eliminierung irgendwelcher „unklarer" Abschnitte des Bildes. Im Fall des Blocks 270 (10) sorgt das Glätten für eine Eliminierung irgendwelcher kleinflächiger oder schmaler Cluster (gezeigt durch die schraffierten Teile in 10). Die Elementareinheit, durch welche das Endbild Ir repräsentiert wird, verbleibt offensichtlich bei gleicher Größe wie die Kachel Ip, und das Rauschen wird auf Kosten eines Verlustes an Klarheit in dem Bild reduziert.
  • Zu diesem Zeitpunkt zeigt das gemäß obiger Beschreibung geglättete Endbild Ir eindeutig die möglichen Codeabschnitte, enthält jedoch immer noch offensichtlich signifikante unechte bzw. falsche Abschnitte (d. h. „schwarze" Kacheln), die tatsächlich nicht Strichcodes entsprechen und eine große Anzahl von parallelen Verläufen enthalten (beispielsweise Abschnitte relativ zu Tabellen, Schildern, Photographien oder dergleichen).
  • Der nächste Block 280 sorgt (in bekannter Weise) für eine automatische Erkennung der falschen Abschnitte und das Auswählen der Abschnitte entsprechend dem Strichcode mit Hilfe eines automatischen Mustererkennungsprozesses zum Unterscheiden zwischen den falschen Abschnitten und solchen, die zum Strichcode gehören.
  • Der im Block 280 ausgeführte Schritt führt zum Erkennen aller Gruppen signifikanter („schwarzer") Kacheln, die mit größter Wahrscheinlichkeit einem Strichcode entsprechen.
  • Mögliche Wege zum Untersuchen signifikanter Kachelgruppen sind wie folgt:
    Bestimmen der Fläche der signifikanten Kachelgruppe und Zurückweisen jeglicher Gruppen mit einer Fläche unterhalb eines ersten Referenzwertes oder oberhalb eines zweiten Referenzwertes; Bestimmen des durch die signifikante Kachelgruppe definierten Fensters und Zurückweisen jeglicher definierter Fenster mit einer anderen Größe als der eines möglichen Codes; und Bestimmen des Massemittelpunkts der signifikanten Kachelgruppe und Zurückweisen jeglicher Gruppen mit einem Massemittelpunkt in einem Abstand von dem Zentrum des definierten Fensters oberhalb oder unterhalb eines vorgegebenen Schwellwerts.
  • Block 280 weist deshalb einige signifikante Kachelgruppen zurück, wählt andere signifikante Kachelgruppen als korrespondierend zu optischen Codes aus und erzeugt eine Anzahl von ausgewählten signifikanten Kachelgruppen, die jeweils einen Abschnitt des Bildes I definieren, welcher einen entsprechenden optischen Code enthält. Zum Lesen des optischen Codes verarbeitet dann der Lesealgorithmus (Block 290 abwärts von Block 280) in bekannter Weise den Abschnitt des Bildes I, welcher relativ allein für die Abschnitte ist, entsprechend den ausgewählten Kachelgruppen.
  • Das oben beschriebene Verfahren sorgt deshalb für ein effizientes und schnelles Lokalisieren des Abschnittes, welcher dem optischen Code in dem mit Hilfe der Telekamera 20 aufgenommenen Bild entspricht. Im Unterschied zum Verarbeiten des gesamten digitalisierten Bildes I verarbeitet der Code-Lesealgorithmus (Block 290) nur die Abschnitte, welche dem optischen Codebild entsprechen, so daß die verarbeitete Informationsmenge im Vergleich zu der mittels der Telekamera erfaßten Menge wesentlich vermindert ist. Darüber hinaus verhindert die S-Transformation im Block 190 einen Informationsverlust infolge des Verkürzens von Vektoren des gleichen Weges aber mit entgegengesetzten Richtungen, was die Effizienz des Lokalisierungsverfahrens weiter verbessert und Kacheln mit überwiegend senkrechten Verläufen können in der gleichen Gruppe angeordnet werden, weil das beschriebene Verfahren die Kacheln unabhängig von dem überwiegenden Weg der Verläufe in Kachel gruppiert.
  • Das oben beschriebene Verfahren umfaßt das Verarbeiten einer großen Menge von Daten, und nur eine sehr begrenzte Menge der Zeit ist verfügbar, in welcher der Code zu lokalisieren und nachfolgend zu lesen ist, weil die Objekte 7 auf dem Band 6 mit hoher Geschwindigkeit (etwa 1–3 Meter pro Sekunde) befördert werden. Um die Verarbeitungsgeschwindigkeit des erfindungsgemäßen Verfahrens weiter zu verbessern, können die Anfangsoperationen entsprechend den Blöcken 130250 des Verfahrens, die durch das Verarbeiten einer großen Menge von Daten charakterisiert sind, mit Hilfe schlichter Algorithmen ausgeführt werden, indem elektronische Schaltungen (Hardware) genutzt werden, die die Operationen implementieren. Umgekehrt können die Endoperationen entsprechend den Blöcken 270290 des Verfahrens, die durch das Verarbeiten einer kleinen Menge von Daten charakterisiert sind, mittels schlichter Komplexalgorithmen mit Hilfe eines Programms (Software) ausgeführt werden. Speziell die Verlaufsberechnung in Block 130 kann mit einer ersten Schaltung (nicht dargestellt), die zwei Subtrahierer und eine digitale Verzögerungsleitung definiert, und Erzeugungskomponenten GX und GY des Verlaufsvektors G ausgeführt werden. Die Operationen in den Blöcken 140, 150, 190 und 200 können ausgeführt werden mit Hilfe einer zweiten Schaltung (nicht dargestellt), die hauptsächlich einen Speicher, welcher die Komponenten GX und GY empfängt und Erzeugungskomponenten Sx und Sy des S-transformierten und quantisierten Verlaufsvektors umfaßt. Die Operationen in Block 220 können mit Hilfe einer dritten Schaltung (nicht dargestellt) ausgeführt werden, die einen digitalen Filter, Addierer und Verzögerungsleitungen umfaßt, welche die Komponenten Sx und Sy empfangen und die X- und Y-Komponenten des Gesamtverlaufsvektors erzeugen. Schließlich können die Operationen in den Blöcken 230, 240 und 250 mit Hilfe einer vierten Schaltung (nicht dargestellt) ausgeführt werden, die die X- und Y-Komponenten des Gesamtverlaufsvektors empfängt und einen Komparator, einen Speicher und eine Folge von Addierern umfaßt.
  • Alternativ kann der Gesamtverlaufsvektor Gs im Block 230 mit Schwellwerten und einer Anzahl von Referenzwegen verglichen werden. Dieses bedeutet, daß der kartesische Raum, in welchem der Gesamtverlaufsvektor Gs lokalisiert ist, in einen zentralen Abschnitt, welcher die Grenzwerte des Schwellwertvektors definiert, und eine Anzahl von radialen Abschnitten außerhalb des zentralen Abschnitts unterteilt werden kann, die Gesamtverlaufsvektor-Wegen entsprechen. Jeder radiale Abschnitt (und folglich jeder Gesamtverlaufsvektor-Weg) entspricht wenigstens einer entsprechenden binären Ebene, in welche der Gesamtverlaufsvektor abgebildet wird. Insbesondere liefert die Orientierung des Gesamtverlaufsvektors das Auswählen wenigstens einer entsprechenden binären Ebene, die eine Anzahl von Kacheln umfaßt. Jeder Kachel wird eine „1" oder eine „0" in Abhängigkeit davon zugeordnet, ob der jeweilige Gesamtverlaufsvektor oberhalb oder unterhalb des Schwellwerts ist, um eine Anzahl binärer Bilder zu bauen, die jeweils ähnlich zu dem in 9 sind, d. h. zerteilt in eine Anzahl von angrenzenden Kacheln Ip mit der Logik „1" (signifikante „schwarze" Kachel) oder der Logik „0" (nicht signifikante „weiße" Kachel).
  • In dem Beispiel nach 11 ist der kartesische Raum, in welchem der Gesamtverlaufsvektor Gs lokalisiert ist, in einen zentralen Abschnitt (definiert durch ein Quadrat Q), welcher die minimalen Schwellwert-Vektorwerte definiert, und acht symmetrische radiale Abschnitte Z1– Z8 außerhalb des Quadrats Q unterteilt, die jeweiligen Wegen des Gesamtverlaufsvektors Gs entsprechen. Jeder radiale Abschnitt (und folglich jeder Gesamtverlaufsvektor-Weg) entspricht zwei jeweiligen binären Ebenen a–h, in welchen der entsprechenden Kachel Ip eine „1" zugeordnet ist, wohingegen in allen anderen Ebenen der entsprechenden Kachel Ip eine „0" zugeordnet ist, um acht binäre Bilder zu bauen, die jeweils ähnlich zu dem in 9 sind. Die im Block 280 ausgeführte Analyse wird für jede der verschiedenen binären Ebenen wiederholt, um die Gruppen von signifikanten (schwarzen) Kacheln Ip zu lokalisieren, die den optischen Codebildern entsprechen. Die Unterteilung in mehrere Ebenen, die jeweils einem Weg entsprechen, führt zu Verbesserung der Selektivität des Festlegungs- bzw. Lokalisierungsprozesses.
  • 12 zeigt den Raum unterteilt in eine größere Anzahl von radialen Abschnitten als in 11, speziell in 12 Abschnitte. In diesem Fall wird auch die Orientierung des Gesamtverlaufsvektors Gs für jede Kachel Ip bestimmt, um die Ebene (n) des Abschnitts relativ zum Gesamtverlaufsvektor Gs zu lokalisieren und so eine Anzahl binärer Bilder zu bauen.
  • Bei einer weiteren Ausführungsform können N binäre Ebenenglättungen durch eine mittlere Gesamtvektoroperation ersetzt werden.
  • In diesem Fall wird jeder im Block 220 für eine Kachel Ip erzeugte Gesamtvektor Gs ersetzt durch den Mittelgesamtvektor aller Kacheln innerhalb einer adäquaten Nachbarschaft der fraglichen Kachel Ip (beispielsweise eine Nachbarschaft von drei mal drei Kacheln Ip). Der sich ergebende Gesamtvektor kann dann in der gleichen Weise, wie dieses oben beschrieben wurde, verarbeitet werden (Blöcke 230, 240 und 250), d. h. mit den Schwellwerten verglichen werden, um die signifikanten Kachelgruppen zu bestimmen. In diesem Fall ist die binäre Glättungsoperation im Block 270 entbehrlich.
  • Änderungen können an dem hier beschriebenen Verfahren vorgenommen werden, ohne daß der Bereich der Erfindung verlassen wird.

Claims (17)

  1. Ein Verfahren zum Festlegen eines optisch Kodes, der auf hin Objekt (7) angebrecht wird, mit: – einem Bilderfassungsschritt (110), in welchem zumindest ein Bild (I) eines Objekts (7), welches besagten Koden (BC) trägt, erfasst wird; – einem ersten Verarbeitungsschritt (120), in welchem das erfasste Bild in eine Anzahl von Elementarbildem (If) zerteilt wird, von denen jedes eine vorbestimmte Anzahl (N) von Pixeln umfasst, und jedem Pixel ein Pixel-Helligkeitswert (A, B, C, D) zugeordnet wird; – einem zweiten Verarbeitungsschritt (130), in welchem für jedes der besagten Elementarbilder (If) ein Helügkeitsverlaufsvektor (G) berechnet wird; – einem ersten Vergleichsschritt (140), in welchem aus besagten berechneten Verlaufsvektoren (G) die Vektoren, deren Betrag über zumindest einem Grenzwert (Glim) liegt und die schnelle Helligkeitsänderungen darstellen, ausgewählt werden; – einem Umwandlungsschritt (190), in welchem die Winkel der zuvor ausgewählten Verlaufs vektoren mit einem Faktor multipliziert werden, welcher von dem Typ des optischen Kodes abhängt; – einem Kachelbildungsschritt (215), in welchem besagtes erfasstes Bild (I) in eine Anzahl von Unterbildem (Ip) zerteilt wird, wobei jedes Unterbild (Ip) eine Anzahl van Elementarbildern (If) umfasst; – einem Zusammensetzungsschritt (220), in welchem die zuvor umgewandelten Veraufsvektoren eines ausgewählten Unterbildes (Ip) addiert werden, um einen Gesamtverlaufsvektor (Gs) zu berechnen; – einem zweiten Vergleichsschritt (230), in welchem besagter Gesamtverlaufsvektor (Gs) von jedem besagten Unterbild (Ip) mit Referenzwerten (Q) verglichen wird, um signifikante Unterbilder auszuwählen (240), die eine ausreichende Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleichen Richtung haben, wobei den signifikanten Unterbildern ein erster binärer Logikwert ("1") zugeordnet wird; während besagter zweiter Vergleichschritt (230) auch nicht signifikante Unterbilder festlegt (250), die eine begrenzte Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleichen Richtunghaben, wobei den nicht signifikanten Unterbildem ein zweiter binärer Logikwert ("0") zugeordnet wird; wobei besagtes Verfahren zumindest ein binäres Endbild (Ir) erzeugt, welches besagtes erfasstes Bild (1) zerteilt in besagte Unterbilder (Ip) darstellt, wobei jedes über einen entsprechenden binären Logikwert vertilgt.
  2. Verfahren nach Anspruch 1, in welchem besagter optisch Kode ein Strichcode (BC) ist, dadurch gekennzeichnet, dass der durch besagten Verlaufsvektor in Bezug auf ein kartesisches Referenzsystem gebildete Winkel (α) während besagtem Umwandlungsschritt (190) verdoppelt wird.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass während besagtem Umwandlungsschritt (190) der durch besagten Verlaufsvektor In Bezug auf ein kartesisches Referenzsystem gebildete Winkel (α) mit einem Faktor multipliziert wird, welcher der Seitenanzahl der geometrischen Figur entspricht, welches das Einheitselement des optisch Kodes bildet.
  4. Verfahren nach Anspruch 3, in welchem besagter optisch Kode ein zweidimensional Kode ist, deren Einheftselement durch vier Seiten definiert ist, dadurch gekennzeichnet, dass während besagtem Umwandlungsschritt (190) der durch besagten Verlaufsvektor in Bezug auf ein kartesisches Referenzsystem gebildete Winkel (α) mit einem Faktor vier muitipliziert wird.
  5. Verfahren nach Anspruch 3, in welchem besagter optisch Kode ein zweidimensional Kode ist, deren Einheitselement durch sechs Seiten definiert ist, dadurch gekennzeichnet, dass während besagtem Umwandlungsschritt (190) der durch besagten Verlaufsvektor in Bezug auf ein kartesisches Referenzsystem gebildete Winkel (α) mit einem Faktor sechs multipliziert wird.
  6. Verfahren nach einem dervorhergehenden Ansprüche, dadurch gekennzeichnet, dass auf besagten Umwandlungsschritt (190) ein Quantisierungsschritt (200) folgt, in welchem die berechneten Verlaufsvektoren dem naheliegendsten Vektor aus einer Reihe von Bezugsvektoren angeglichen werden.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass besagte Bezugsvektoren vier erste, rechtwinklig aufeinander stehende Einheitsvektoren und vier zweite Vektoren umfassen, die rechtwinklig aufeinander stehen und in Bezug auf die ersten Vektoren einen Winkel von 45° bilden.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es einen weiteren Verarbeitungsschritt (270) des besagten binären Endbildes (Ir) umfasst, In welchem der Binärwert von jedem Unterbild durch den Binärwert der Mehrheit der angrenzenden Unterbilder ersetzt wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass es einen Mustererkennungsschritt (280) umfasst, in welchem besagtes Endbild (Ir) untersucht wird, um die Unterbildgruppen des besagten ersten Binärwertes festzulegen; wobei besagter Mustererkennungsschritt (280) aus den erkannten Unterbildgruppen typische Unterbildgruppen unterscheidet, die über besagten ersten Binärwert verfügen und höchstwahrscheinlich mit signifikanten Abschnitten des besagten erfassten Bildes übereinstimmen, das mit digitalen Kodebildem übereinstimmt.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass auf besagten Mustererkennungsschritt (280) eine Leseschritt (290) folgt, in welchem der in besagten signifikanten Abschnitten beinhaltete Kode automatisch gelesen wird.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in besagtem zweiten Vergleichsschritt (230) besagter Gesamt verlaufsvektor (Gs} mit Referenzwerten (Q) und einer Anzahl von Referenzrichtungen verglichen wird; wobei der kartesische Raum, in welchem besagter Gesamtverfaufsvektor (Gs) darstellbar ist, in einen Mittelabschnitt unterteilt wird, der durch Referenzwerte (C1) definiert wird, und in eine Anzahl von radialen Abschnitten, (Z1–Z8) außerhalb des Mittelabschnitts, die den entsprechenden Richtungen des Gesamtverlaufvektors entsprechen; wobei jeder radiale Abschnitt zumindest einer entsprechenden Binärebene (a–h) entspricht, die eine Anzahl von Unterbildem (Ip) umfasst, deren binärer Wert durch das Vergleichen des besagten Gesamtverlaufsvektors (Gs) mit besagtem Referenzwert bestimmt wird.
  12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass auf besagten Zusammensetzungsschritt (220) ein Schritt folgt, in welchem jeder für ein entsprechendes Unterbild (Ip) erzeugter Gesamtverlaufsvektor (Gs) durch einen mittleren Gesamtverlaufsvektor aller Unterbilder (Ip) innerhalb einer vorbestimmten Nachbarschaft des besagten Unterbildes (Ip) ersetzt wird, um einen zusammengesetzten Gesamtverlaufsvektor zu erzeugen; wobei der zusammengesetzte Gesamtveriaufsvektor in besagtem zweiten Vergleichsschritt (230) mit Referenzwerten verglichen wird, um signifikante Unterbildgruppen zu bestimmen.
  13. Ein Gerät zum Festlegen eines optisch Kodes, der auf ein Objekt (7) angebrecht wird, mit: – Bilderfassungsmittel (22, 110) zur Erfassung von mindestens einem Bild (I) eines Objekts (7), welches besagten Koden (BC) trägt; – ersten Verarbeitungsmittel (120), in welchen das erfasste Bild (I) in eine Anzahl von Elementarbildern (If) zerteilt wird, von denen jedes eine vorbestimmte Anzahl (N) von Pixeln umfasst; wobei jedem Pixel ein Pixel-Helligkeitswert (A, B, C, D) zugeordnet wird; – zweiten Verarbeitungsmittel (130), in welchen für jedes der besagten Elementarbilder (If) ein Hetligkeitsverlaufvektor (G) berechnet wird; – erste Vergleichsmittel (140), in welchen aus besagten berechneten Veriaufsvektoren (G) die Vektoren, deren Betrag über zumindest einem Grenzwert (Glim) liegt und die schnelle Helligkeitsänderungen darstellen, ausgewählt werden; – Umwandlungsmittel (190), in welchem die Winkel der zuvor ausgewählten Verlaufsvektoren mit einem Faktor multipliziert werden, welcher von dem Typ des optischen Kodes abhängt; – Kachelbildungsmittel (215), in welchen besagtes erfasstes Bild (I) in eine Anzahl von Unterbildern (Ip) zerteilt wird, wobei jedes Unterbild (Ip) eine Anzahl von Elementarbildern (If) umfasst; – Zusammensetzungsmittel (220), in welchen die zuvor umgewandelten Verlaufsvektoren eisnes ausgewählten Unterbildes (Ip) addiert werden, um einen Gesamtverlaufsvektor (Gs) zu berechnen; – zweiten Vergleichsmitel (230), in weichen besagter Gesamtvertaufsvektor (Gs) von jedem besagten Unterbild (Ip) mit Referenzwerten (Q) verglichen wird, um signifkante Unterbilder auszuwählen (240), die eine ausreichende Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleichen Richtung haben, wobei den signifikanten Unterbildern ein erster binärer Logikwert ("1") zugeordnet wird; während besagte zweite Vergleichsmittel (230) auch nicht signifikante Unterbilder festlegen (250), die eine begrenzte Anzahl von Verlaufsvektoren umfassen, die weitgehend die gleichen Richtung haben, wobei den nicht signifikanten Unterbildern ein zweiter binärer Logikwert ("0") zugeordnet wird; wobei besagtes Gerät zumindest ein binäres Endbild (Ir) erzeugt, welches besagtes erfasstes Bild (I) zerteilt in besagte Unterbilder (Ip) darstellt, wobei jedes über einen entsprechenden binären Logikwert verfügt.
  14. Gerät nach Anspruch 13, in welchem besagter optisch Kodes ein Strichcode (BC) ist, dadurch gekennzeichnet, dass besagte Umwandlungsmittel den Winkel (α) verdoppeln, der durch besagten Verlaufsvektor in Bezug auf ein Referenzsystem gebildet wird.
  15. Gerät nach Anspruch 13, dadurch gekennzeichnet, dass besagte Umwandlungsmittel den durch besagten Verlaufsvektor in Bezug auf ein kartesisches Referenzsystem gebildeten Winkel (α) um einem Faktor vervielfachen, welcher der Seitenanzahl der geometrischen Figur entspricht, welches das Einheitselement des optisch Kodes bildet.
  16. Gerät nach Ansprusch 15, in welchem besagter optisch Kode ein zweidimensional Kode ist, deren Einheitselement durch vier Seiten definiert ist, dadurch gekennzeichnet, dass besagter Faktor vier entspricht.
  17. Gerät nach Anspruch 15, in welchem besagter optisch Kode ein zweidimensional Kode ist, deren Einheitselement durch sechs Seiten definiert ist, dadurch gekennzeichnet, dass besagter Faktor sechs entspricht.
DE69629930T 1996-12-30 1996-12-30 Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes Expired - Lifetime DE69629930T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP96830661A EP0851374B1 (de) 1996-12-30 1996-12-30 Verfahren zum Lokalisieren eines auf einem Objekt aufgebrachten Kodes

Publications (2)

Publication Number Publication Date
DE69629930D1 DE69629930D1 (de) 2003-10-16
DE69629930T2 true DE69629930T2 (de) 2004-07-22

Family

ID=8226101

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69629930T Expired - Lifetime DE69629930T2 (de) 1996-12-30 1996-12-30 Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes

Country Status (4)

Country Link
US (1) US6047893A (de)
EP (1) EP0851374B1 (de)
AT (1) ATE249650T1 (de)
DE (1) DE69629930T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE203342T1 (de) * 1997-11-17 2001-08-15 Datalogic Spa Verfahren zur lokalisierung von farbbereichen oder von bereichen mit grossen helligkeitsänderungen in einem bild
DE19840455A1 (de) * 1998-09-04 2000-03-09 Sick Ag Verfahren zum Betreiben eines Strichcodelesers
DE69801161T2 (de) 1998-10-23 2002-03-07 Datalogic Spa Verfahren zur Detektion von Coden in zweidimensionalen Bildern
US7137711B1 (en) 2000-03-21 2006-11-21 Leonard Reiffel Multi-user retro reflector data input
CN1190752C (zh) 2000-05-03 2005-02-23 伦纳德·赖费尔 双模式数据成像产品
US7034803B1 (en) 2000-08-18 2006-04-25 Leonard Reiffel Cursor display privacy product
WO2002017037A2 (en) * 2000-08-18 2002-02-28 Leonard Reiffel Annotating imaged data product
JP4103592B2 (ja) * 2000-12-15 2008-06-18 ライフェル レナード 複数の画像化装置、複数のデータ源、及び複数の用途に対応したコード化データ源データ入力装置
EP1350385A4 (de) * 2000-12-15 2004-12-15 Leonard Reiffel Quellenverfolgungsprodukt für abgebildete kodierte daten
JP4081373B2 (ja) * 2000-12-15 2008-04-23 ライフェル レナード 画像によるコード化データ源変換装置
WO2002086807A1 (en) * 2001-04-19 2002-10-31 Leonard Reiffel Combined imaging coded data source data acquisition
US6729544B2 (en) * 2001-05-02 2004-05-04 International Business Machines Corporation Fast barcode search
GB2392286B (en) * 2002-08-19 2004-07-07 Chunghwa Telecom Co Ltd Personal identification system based on the reading of multiple one-dimensional barcodes scanned from scanned from PDA/cell phone screen
SE0301143D0 (sv) * 2003-04-17 2003-04-17 C Technologies Ab Sätt och anordning för inläsning av data
US20060291797A1 (en) * 2003-05-27 2006-12-28 Leonard Reiffel Multi-imager multi-source multi-use coded data source data input product
US7376894B2 (en) * 2004-11-18 2008-05-20 Microsoft Corporation Vector path merging into gradient elements
WO2006078359A1 (en) * 2004-12-03 2006-07-27 Symbol Technologies, Inc. Bar code scanner decoding
US7337970B2 (en) * 2004-12-03 2008-03-04 Symbol Technologies, Inc. Barcode scanner decoding
US20100084470A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Two-dimensional barcode localization for camera based devices
JP5651659B2 (ja) * 2012-08-31 2015-01-14 株式会社東芝 物体検出システムおよびプログラム
ITUB20154043A1 (it) 2015-09-30 2017-03-30 Datalogic IP Tech Srl Sistema e metodo di lettura di informazioni codificate
JP6837880B2 (ja) 2017-03-15 2021-03-03 株式会社東芝 画像処理装置、画像処理システム、画像処理方法、およびプログラム
US10346660B2 (en) 2017-08-25 2019-07-09 Datalogic I.P. Tech S.R.L. Coded image capture and decoding system
US10262436B2 (en) * 2017-08-25 2019-04-16 Datalogic Ip Tech S.R.L. System for multiple decode of captured images
GB2575333B (en) 2018-12-21 2020-09-09 Imagination Tech Ltd Double-angle gradients
US10825137B2 (en) 2019-01-15 2020-11-03 Datalogic IP Tech, S.r.l. Systems and methods for pre-localization of regions of interest for optical character recognition, and devices therefor
US10817693B1 (en) 2019-07-10 2020-10-27 Datalogic Ip Tech S.R.L. System for decode of two-dimensional indicia
US11003881B2 (en) 2019-09-11 2021-05-11 Datalogic Ip Tech S.R.L. System for multiple decode of captured images

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4874936A (en) * 1988-04-08 1989-10-17 United Parcel Service Of America, Inc. Hexagonal, information encoding article, process and system
US5296690A (en) * 1991-03-28 1994-03-22 Omniplanar, Inc. System for locating and determining the orientation of bar codes in a two-dimensional image
US5268580A (en) * 1992-09-02 1993-12-07 Ncr Corporation Bar code enhancement system and method for vision scanners
US5304787A (en) * 1993-06-01 1994-04-19 Metamedia Corporation Locating 2-D bar codes
US5504319A (en) * 1994-02-09 1996-04-02 Symbol Technologies, Inc. Method and system for bar code acquisition

Also Published As

Publication number Publication date
EP0851374A1 (de) 1998-07-01
US6047893A (en) 2000-04-11
EP0851374B1 (de) 2003-09-10
DE69629930D1 (de) 2003-10-16
ATE249650T1 (de) 2003-09-15

Similar Documents

Publication Publication Date Title
DE69629930T2 (de) Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes
DE69735437T2 (de) Bildkodierer und bilddekodierer
DE69625583T2 (de) Datenformleser
DE2831582C2 (de) Verfahren zur Identifizierung einer Person und Vorrichtung zur Durchführung des Verfahrens
DE69932489T2 (de) Verfahren und System zur merkmalbasierten Echtzeitbewegungsanalyse zur Auswahl von Schlüsselbildern aus einer Videosequenz
DE60123088T2 (de) Verahren zur automatischen belichtungssteuerung
DE69633908T2 (de) Anti-handzitter datenformatleser und verfahren
DE10081029B4 (de) Bildbearbeitung zur Vorbereitung einer Texturnalyse
DE19814075B4 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
CH657489A5 (de) Strukturerkennungsvorrichtung und verfahren zu ihrem betrieb.
DE3923449A1 (de) Verfahren zum bestimmen von kanten in bildern
EP2417561A1 (de) Zweidimensionaler symbolcode und verfahren zum lesen des symbolcodes
DE602004011145T2 (de) Vorrichtung und Verfahren zum Lesen von optischen Informationen
DE3412889A1 (de) Bildaufnahmesystem
DE102013112040B4 (de) System und Verfahren zum Auffinden von sattelpunktartigen Strukturen in einem Bild und Bestimmen von Informationen daraus
DE102006017337A1 (de) Verfahren zur optischen Erfassung von bewegten Objekten und Vorrichtung
EP3789906B1 (de) Bestimmen der modulgrösse eines optischen codes
CH708993B1 (de) Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes.
DE2829808A1 (de) Verfahren und vorrichtung zum lesen von zeichen
DE3718620C2 (de)
DE102016100134B4 (de) Verfahren und Vorrichtung zum Untersuchen eines Objekts unter Verwendung von maschinellem Sehen
DE19536691B4 (de) Verfahren und Anordnung zur Korrektur von Bildstandsfehlern bei der fernsehmäßigen Filmabtastung
CH708994B1 (de) Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes.
EP0897247A2 (de) Verfahren zur Berechnung von Bewegungsvektoren
DE19947557B4 (de) Bildverarbeitungsvorrichtung und Bildverarbeitungsverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition