DE69332771T2 - Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen - Google Patents

Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen Download PDF

Info

Publication number
DE69332771T2
DE69332771T2 DE69332771T DE69332771T DE69332771T2 DE 69332771 T2 DE69332771 T2 DE 69332771T2 DE 69332771 T DE69332771 T DE 69332771T DE 69332771 T DE69332771 T DE 69332771T DE 69332771 T2 DE69332771 T2 DE 69332771T2
Authority
DE
Germany
Prior art keywords
decoded
choice
characters
character
bar code
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
DE69332771T
Other languages
English (en)
Other versions
DE69332771D1 (de
Inventor
Mihael Klancnik
Luis Figarella
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.)
United Parcel Service of America Inc
United Parcel Service Inc
Original Assignee
United Parcel Service of America Inc
United Parcel Service Inc
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 United Parcel Service of America Inc, United Parcel Service Inc filed Critical United Parcel Service of America Inc
Publication of DE69332771D1 publication Critical patent/DE69332771D1/de
Application granted granted Critical
Publication of DE69332771T2 publication Critical patent/DE69332771T2/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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/1092Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing by means of TV-scanning
    • 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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/1093Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
    • 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/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • 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/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1456Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
    • 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/1465Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code
    • 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/1469Methods for optical code recognition the method including quality enhancement steps using sub-pixel interpolation

Description

  • HINTERGRUND DER ERFINDUNG Technischer Bereich der Erfindung
  • Die Erfindung betrifft das Lesen von Strichcodesymbolen und insbesondere Verfahren und Vorrichtungen zum Decodieren von Strichcodesymbolen, die zufällig in zweidimensionalen Pixelbildern mit Graustufen angeordnet sind.
  • Beschreibung der verwandten Techniken
  • Strichcodes sind der am Verbreitetsten genutzte Code zur automatischen Identifikation. Herkömmliche Lesevorrichtungen für Strichcodesymbole sind Laserscanner, die zum Lesen zweidimensionaler Codes wenig geeignet sind. Überdies können sie eine häufige Wartung und Einstellung erfordern. Zweidimensionale Codes können leichter von Systemen mit Kameras mit linearen CCD-Anordnungen gelesen werden. Derartige Kameras, die wenig Wartung und Einstellung erfordern, erzeugen zweidimensionale Pixelbilder von Codesymbolen in Graustufen. Die vorliegende Erfindung erfaßt und decodiert Strichcodesymbole in von CCD-Kamerasystemen erzeugten Pixelbildern, wodurch die gleiche Codesymbol-Lesevorrichtung sowohl zum Lesen von Strichcodes als auch von zweidimensionalen Codes verwendet werden kann.
  • In dem US-Patent Nr. 4,963,719 (einem 719-Patent) ist der allgemeine Gedanke der Bestimmung der Zeichen auf einem Strichcodeetikett und der anschließenden Verwendung einer Prüfsummenanalyse zur Erfassung eines Fehlers bei der Bestimmung offenbart. Das 719-Patentbeschreibt jedoch nicht, wie beispielsweise durch Ableiten einer zweiten decodierten Wahl für ein gegebenes Zeichen die Wahrscheinlichkeit gesteigert werden kann, daß die Bestimmung nicht fehlerhaft ist.
  • Es ist daher die Aufgabe der Erfindung, ein Verfahren und eine Vorrichtung zur Decodierung von Strichcodesymbolen zu schaffen, durch die durch Ableiten einer zweiten decodierten Wahl für ein gegebenes Zeichen die Wahrscheinlichkeit, daß die Bestimmung der Zeichen der Strichcodesymbole nicht fehlerhaft ist, gesteigert werden kann.
  • Erfindungsgemäß wird diese Aufgabe jeweils durch das in Anspruch 1 beanspruchte Verfahren und die in Anspruch 10 beanspruchte Vorrichtung gelöst.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es wird ein System zum Decodieren eines Strichcodesymbols beschrieben, das ein das Symbol repräsentierendes Signal empfängt und das Signal in einer Dimension durchsucht, um zwei beieinander liegende kritische Punkte zu lokalisieren, die einem Element des Symbols entsprechen. Das System berechnet auch einen Wert, der die Signalenergie zwischen den beiden kritischen Punkten repräsentiert, und bestimmt die Breite des gegebenen Elements entsprechend dem Wert.
  • Bei einer bevorzugten Ausführungsform der Erfindung ist die Erfindung ein System zum Decodieren von Strichcodesymbolen, das ein Signal empfängt, das ein Strichcodesymbol mit mehreren Zeichen repräsentiert, von denen eines ein Prüfsummenzeichen ist. Das System bestimmt anhand des Signals eine erste decodierte Wahl für jedes der Zeichen und eine zweite decodierte Wahl für mindestens eines der Zeichen. Das System führt entsprechend der ersten decodier ten Wahl für jedes der Zeichen eine Prüfsummenanalyse aus. Ist die Prüfsummenanalyse erfolglos, führt das System unter Verwendung der zweiten decodierten Wahl eine Prüfsummenanalyse aus.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Ablaufdiagramm des von dem Erfassungssystem zur Erfassung von Strichcodesymbolen ausgeführten Prozesses;
  • 2 ist eine grafische Darstellung eines Pixelbilds, das ein Strichcodesymbol enthält, das in bezug auf die Zeilen und Spalten der Pixel in dem Pixelbild in einem Winkel von 45 Grad ausgerichtet ist;
  • 3 ist ein Ablaufdiagramm des von einem Untersystem zur Identifikation von Anfangs- und Endzeichen des Erfassungssystems gemäß 1 ausgeführten Prozesses zur Identifikation der Anfangsund Endzeichen von Strichcodes;
  • 4 ist ein Ablaufdiagramm des von einem Untersystem zum Lokalisieren der vier Ecken des Erfassungssystems gemäß 1 ausgeführten Prozesses zur Lokalisierung der vier Ecken eines Strichcodesymbols;
  • 5 ist eine grafische Darstellung eines Pixelunterbilds des Pixelbilds gemäß 2;
  • 6 ist ein Ablaufdiagramm des von einem Untersystem zur Lokalisierung von zwei Ecken ausgeführten Prozesses zum Lokalisieren von zwei Ecken eines Strichcodesymbols;
  • 7 ist ein Ablaufdiagramm des von einem Untersystem zur Auswahl eines Ausgangspixels des Untersystems zum Lokalisieren von zwei Ecken gemäß 6 ausgeführten Prozesses zur Auswahl eines nächsten Ausgangspixels anhand eines aktuellen Ausgangspixels;
  • 8 ist eine Tabelle, die die ersten zwölf Verarbeitungszyklen des Untersystems zum Lokalisieren von zwei Ecken gemäß 6 an dem Unterbild gemäß 5 darstellt;
  • 9 ist ein Ablaufdiagramm des von einem Untersystem zum Decodieren von Strichcodesymbolen des Erfassungssystems gemäß 1 ausgeführten Prozesses zur Decodierung eines Strichcodesymbols;
  • 10 ist die grafische Darstellung eines Pixelbilds, das ein Strichcodesymbol von verschlechterter Qualität enthält;
  • 11 ist ein Ablaufdiagramm des von einem schrittweise arbeitenden Untersystem des Untersystems zum Decodieren von Strichcodesymbolen gemäß 9 ausgeführten Prozesses zur schrittweisen Analyse einer Bezugslinie und zur Decodierung eines Strichcodesymbols;
  • 12 ist die grafische Darstellung eines Pixelbilds, das einen Abschnitt eines Strichcodesymbols enthält, das weder an den Pixelzeilen noch den Pixelspalten des Pixelbilds ausgerichtet ist;
  • 13 ist eine grafische Darstellung der Pixelintensitätsniveaus von 11 Pixeln in einem Schritt zur Durchsuchung des Pixelbilds gemäß 12;
  • 14 ist ein Ablaufdiagramm des von einem Untersystem zur Unterpixelinterpolation ausgeführten Prozesses zur Berechnung von Signalenergiewerten für die Striche von Strichcodesymbolen;
  • 15 ist ein Ablaufdiagramm des von einem Untersystem zur Unterpixelinterpolation ausgeführten Prozesses zur Berechnung von Signalenergiewerten für Zwischenräume von Strichcodesymbolen;
  • 16 ist eine grafische Darstellung eines Strichcodesymbolzeichens, das aus drei Strichen und drei Zwischenräumen besteht;
  • 17 ist ein Ablaufdiagramm des von einem Untersystem zur Analyse in einander überlappenden Schritten ausgeführten Prozesses zur Decodierung von Strichcodesymbolen durch Analyse mittels einander überlappender Schritte; und
  • 18 ist eine grafische Darstellung eines Pixelbilds, das einen Strichcode enthält, der weder an den Pixelzeilen noch mit den Pixelspalten des Pixelbilds ausgerichtet ist.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Es wird ein System zur Erfassung und Decodierung von Strichcodesymbolen beschrieben. Strichcodesymbole können in durch eine CCD-Zeilen-Kamera (CCD, charge coupled device, Photoelementanordnung) erzeugten zweidimensionalen Pixelbildsignalen mit Graustufen enthalten sein. Jedes Pixelbild kann ein oder mehr zufällig angeordnete und ausgerichtete Strichcodesymbole enthalten. Genauer müssen die Striche in den Strichcodesymbolen weder mit den Zeilen noch mit den Spalten der Pixel in den Pixelbildern ausgerichtet sein. Das Erfassungs- und Decodiersystem erfordert keine vorgegebenen Informationen hinsichtlich der Ausrichtungen und Positionen von Strichcodesymbolen in den Pixelbildern. Dies bedeutet, daß das System Strichcodesymbole in Pixelbildern durch Verarbeiten der Pixelbilder selbst erfassen kann, ohne über existierende Informationen bezüglich der Ausrichtungen und Positionen der Symbole in den Pixelbildern zu verfügen.
  • Ein Pixelbild kann mit niedriger Auflösung längs aufeinanderfolgender, ausgewählter Abtastzeilen auf eine ruhige Zone des Strich codesymbols abgetastet werden. Vorzugsweise wird jede der aufeinanderfolgenden Abtastzeilen entsprechend einer binären Suchreihenfolge ausgewählt, so daß durch aufeinanderfolgende Abtastzeilen das Pixelbild in kleinere und kleinere Abschnitte unterteilt wird. Wird eine ruhige Zone erfaßt, wird das Pixelbild entlang der ausgewählten Abtastzeile mit hoher Auflösung auf ein beliebiges aus einem in einer Bezugstabelle enthaltenen Satz von Bezugs-Anfangs- und Endzeichen für Strichcodesymbole durchsucht. Wird ein derartiges Anfangs- oder Endzeichen gefunden, ist ein Strichcodesymbol erfaßt, und die vier Ecken des Strichcodesymbols in dem Pixelbild werden lokalisiert. Unter Verwendung der vier Ecken zur Identifikation des das erfaßte Strichcodesymbol enthaltenden Bereichs des Pixelbilds wird dann das Strichcodesymbol decodiert. Nach der Decodierung eines erfaßten Strichcodesymbols wird mit niedriger Auflösung die Abtastung des Pixelbilds auf eine weitere ruhige Zone eines weiteren Strichcodesymbols wieder aufgenommen. Die Erfassung und Decodierung von Strichcodesymbolen kann fortgesetzt werden, bis durch die Abtastung auf ruhige Zonen mit niedriger Auflösung das Pixelbild in eine vorgegebene Abschnittsgröße unterteilt wurde.
  • Die Erfassung und Decodierung von Strichcodesymbolen
  • In 1 ist ein Ablaufdiagramm des von dem Erfassungssystem 100 ausgeführten Prozesses zur Erfassung und Decodierung von Strichcodesymbolen gezeigt. Das Erfassungssystem 100 empfängt ein zweidimensionales Pixelbild in Graustufen als Eingang, tastet das Pixelbild in einer Dimension auf ruhige Zonen ab, sucht nach dem Auffinden jeder ruhigen Zone in einer Dimension nach Anfangs- und Endzeichen, findet die vier Ecken jedes erfaßten Strichcodesymbols und decodiert jedes erfaßte Strichcodesymbol. Das Erfassungssystem 100 kann in einem 16-MHz-386sx-Computer mit einem mathematischen Coprozessor oder einem von CSPI hergestellten i860-CPU-RISC-Prozessor der Marke "SUPERCARD" angeordnet sein und betrieben werden.
  • Das Erfassungssystem 100 kann ein Pixelbild als Eingang akzeptieren, und eine Einrichtung 102 erzeugt ein Histogramm des Pixelbilds. Das Histogramm gibt die minimalen und maximalen Intensitätsniveaus der Pixel in dem Pixelbild an. Wie im Zusammenhang mit den 14 und 15 später in dieser Beschreibung erläutert, werden diese minimalen und maximalen Intensitätsniveaus zur Bestimmung der Breiten der Striche und Zwischenräume der in dem Pixelbild enthaltenen Strichcodesymbole verwendet.
  • Das Erfassungssystem 100 tastet das Pixelbild entlang ausgewählter Abtastzeilen auf ruhige Zonen ab. Jede Abtastzeile ist entweder eine Zeile oder eine Spalte von Pixeln in dem Pixelbild. Die Abtastzeilen können in einer bidirektionalen binären Suchreihenfolge ausgewählt werden.
  • In 2 ist eine grafische Darstellung eines Pixelbilds 200 gezeigt, das ein Strichcodesymbol 202 enthält, das in bezug auf die Zeilen und Spalten der Pixel in dem Pixelbild 200 in einem Winkel von 45 Grad ausgerichtet ist. Bei einer bevorzugten bidirektionalen binären Suchreihenfolge kann eine erste Abtastzeile 264 das Pixelbild 200 horizontal in zwei Hälften unterteilen. Eine zweite Abtastzeile 210 unterteilt das Pixelbild 200 vertikal in zwei Hälften. Eine dritte und eine vierte Abtastzeile 270 und 258 unterteilen die obere und die untere Hälfte des Pixelbilds 200 jeweils erneut in zwei Hälften. Ähnlich unterteilen eine fünfte und eine sechste Abtastzeile 204 und 216 die linke und die rechte Hälfte des Pixelbilds 200 jeweils erneut in zwei Hälften. Daher sind die Abtastzeilen vorzugsweise entweder parallel oder senkrecht zueinander.
  • Die Auswahl aufeinander folgender Abtastzeilen erfolgt vorzugsweise durch fortlaufendes Teilen in der verbleibenden Abschnitte des Pixelbilds 200 zwei Hälften. Abhängig von den an das Erfassungssystem 100 gestellten Betriebsanforderungen kann das Abtasten des Pixelbilds 200 fortgesetzt werden, bis eine vorgegebene minimale Abschnittsgröße erreicht ist, bis jede Pixelzeile und -spalte abgetastet ist oder bis die zulässige Verarbeitungszeit abgelaufen ist. Das Abtasten des Pixelbilds 200 kann sicherstellen, daß jede ruhige Zone eines Strichcodesymbols mindestens zwei Mal abgetastet wird.
  • Das Pixelbild 200 kann beispielsweise einen abgebildeten Bereich repräsentieren, der 5,12 Zoll breit und 5,12 Zoll hoch ist, wobei jedes Pixel einen Bereich mit einer Größe von 0,01 Zoll auf 0,01 Zoll repräsentiert. Wenn die gesuchten Strichcodesymbole Striche mit einer Höhe von mindestens 2 Zoll aufweisen, werden für eine Suchreihenfolge vorzugsweise Abtastzeilen ausgewählt, bis das Pixelbild 200 in Bereiche unterteilt ist, die höchstens 0,71 Zoll · 0,71 Zoll groß sind. Repräsentiert das Pixelbild 200 einen Bereich, der 5,12 Zoll 5,12 Zoll groß ist und entsprechend der in 2 dargestellten bevorzugten binären Suchreihenfolge abgetastet wird, repräsentiert jeder Bereich 238 einen 0,64 Zoll · 0,64 Zoll großen quadratischen Bereich. Derartige Abschnittsgrößen gewährleisten, daß die ruhigen Zonen eines 2 Zoll hohen, im ungünstigsten Fall in bezug auf die Pixelzeilen und -spalten in einem Winkel von 45 Grad ausgerichteten Strichcodesymbols mindestens zwei Mal abgetastet werden.
  • Gemäß 1 ist eine Einrichtung 104 zur Auswahl einer Abtastzeile aus den Pixelzeilen und -spalten in einem Pixelbild vorgesehen. Eine Einrichtung 106 tastet die ausgewählte Abtastzeile in der Richtung der Abtastung auf ruhige Zonen auf die ruhige Zone eines potentiellen Strichcodesymbols ab. Das Abtasten auf ruhige Zonen erfolgt vorzugsweise mit einer geringen Auflösung, bei der nur das Intensitätsniveau jedes zweiten oder dritten Pixels in der ausgewählten Abtastzeile analysiert wird.
  • Die Energie jedes Pixels in dem Pixelbild kann einem Graustufen-Intensitätsniveau entsprechen. Pixel die weißen oder hellen Bereichen des Pixelbilds entsprechen, weisen eine hohe Energie und hohe Graustufen-Intensitätsniveaus auf, wogegen schwarzen oder dunklen Bereichen entsprechende Pixel eine niedrige Energie und niedrige Graustufen-Intensitätsniveaus aufweisen. Bei einem Pixelbild mit Graustufen von 8 Bit entspricht absolutes Weiß beispielsweise einem Intensitätsniveau von 255, und absolutes Schwarz entspricht einem Intensitätsniveau von 0.
  • Die ruhige Zone eines Strichcodesymbols ist ein verhältnismäßig großer, heller Bereich neben einem Strichcodesymbol. Die Einrichtung 106 erfaßt eine ruhige Zone durch Suchen nach einem Zustandsübergang von einer Folge von n hellen Pixeln zu mindestens einem dunklen Pixel oder von einem dunklen Pixel zu einer Folge von n hellen Pixeln auf der ausgewählten Abtastzeile, wobei n ein vorgegebener Wert ist. Ein Pixel wird als hell betrachtet, wenn sein Intensitätsniveau größer als ein erster Schwellenwert ist, anderenfalls wird das Pixel als dunkel eingestuft. Die Einrichtung 102 kann den ersten Schwellenwert durch Erzeugen eines Histogramms des Pixelbilds bestimmen. Der erste Schwellenwert kann entweder das mittlere Intensitätsniveau oder der Medianwert des Intensitätsniveaus des Histogramms sein. Alternativ kann der erste Schwellenwert einfach eine vorab festgelegte Konstante sein oder auf andere Weise, einschließlich anderer Arten von statistischen Analysen, bestimmt wer den. In jedem Fall wird der erste Schwellenwert zur Unterscheidung dunkler Pixel von hellen Pixeln in dem Pixelbild verwendet.
  • Zur Erfassung potentieller ruhiger Zonen sucht die Einrichtung 106 nach durchgehenden Folgen von n hellen Pixeln, wobei n eine natürliche Zahl ist, die größer als ein zweiter Schwellenwert ist. Der zweite Schwellenwert hängt von der Auflösung des Pixelbilds, der Größe der ruhigen Zonen, nach denen gesucht wird, und der Auflösung der Abtastung auf ruhige Zonen ab. Wird bei der Suche nach ruhigen Zonen, die mindestens 0,25 Zoll breit sind, in einem Pixelbild, in dem jedes Pixel einen quadratischen Bereich von 0,01 Zoll 0,01 Zoll repräsentiert, jedes dritte Pixel analysiert, können als zweiter Schwellenwert beispielsweise 7 Pixel ausgewählt werden.
  • Sämtliche vertikalen Abtastungen auf ruhige Zonen können der gleichen Abtastrichtung auf ruhige Zonen folgen, entweder von oben nach unten oder von unten nach oben, und ähnlich können sämtliche horizontalen Abtastungen auf ruhige Zonen der gleichen Abtastrichtung auf ruhige Zonen folgen, entweder von links nach rechts oder von rechts nach links. Bei einigen Anordnungen kann die Abtastung auf ruhige Zonen durch Analysieren jedes Pixels in jeder ausgewählten Abtastzeile mit einer hohen Auflösung erfolgen, und das Abtasten ausgewählter Abtastzeilen kann entlang unterschiedlicher Abtastrichtungen auf ruhige Zonen fortschreiten.
  • Stellt die Einrichtung 106 fest, daß entlang der ausgewählten Abtastzeile keine potentielle ruhige Zone erfaßt wurde, bestimmt eine Einrichtung 118, ob bei der Abtastung auf ruhige Zonen das Ende der ausgewählten Abtastzeile erreicht ist. Stellt die Einrichtung 118 fest, daß das Ende der ausgewählten Abtastzeile nicht erreicht ist, wird die Verarbeitung von der Einrichtung 106 fortgesetzt, um die Abtastung auf eine potentielle ruhige Zone entlang der ausgewählten Abtastzeile mit einer niedrigen Auflösung fortzuführen, anderenfalls stellt eine Einrichtung 120 fest, ob die Abtastung auf ruhige Zonen für das gesamte Pixelbild abgeschlossen ist. Ist die Abtastung auf ruhige Zonen nicht abgeschlossen, wird die Verarbeitung an die Einrichtung 104 zurückgegeben, um eine nächste Abtastzeile für die Verarbeitung auszuwählen; anderenfalls ist die Verarbeitung des Pixelbilds durch das Erfassungsuntersystem 100 abgeschlossen.
  • Stellt die Einrichtung 106 fest, daß entlang der ausgewählten Abtastzeile eine potentielle ruhige Zone erfaßt wurde, bestimmt eine Einrichtung 108, ob die potentielle ruhige Zone innerhalb eines Bereichs des Pixelbilds liegt, von dem zuvor festgestellt wurde, daß er ein Strichcodesymbol enthält. Das Erfassungssystem 100 kann die Bereiche des Pixelbilds ignorieren, die Strichcodesymbole enthalten, die bereits erfaßt und decodiert wurden. Wenn die potentielle ruhige Zone innerhalb eines derartigen Bereichs liegt, stellt die Einrichtung 118 fest, ob bei der Abtastung auf ruhige Zonen das Ende der ausgewählten Abtastzeile erreicht ist.
  • Stellt die Einrichtung 108 fest, daß die potentielle ruhige Zone nicht in einem Bereich des Pixelbilds liegt, der ein zuvor erfaßtes und decodiertes Symbol enthält, bestimmt ein Untersystem 110 zur Identifikation von Anfangs- und Endzeichen, ob die potentielle ruhige Zone eine wirkliche ruhige Zone ist oder nicht. Eine wirkliche ruhige Zone folgt auf ein Anfangs- oder Endzeichen oder geht diesem voraus. Das Untersystem 110 zur Identifikation durchsucht die ausgewählte Abtastzeile mit einer hohen Auflösung, um ein Anfangs- oder Endzeichen zu identifizieren. Daher sind die Suchrichtung und die ausgewählte Abtastzeile kollinear. Das Untersystem 110 zur Identifikation wird nachstehend kurz und später in dieser Beschreibung im Zusammenhang mit 3 im Einzelnen beschrieben.
  • Das Untersystem 110 ist zum Durchsuchen der ausgewählten Abtastzeile auf ein Anfangs- oder Endzeichen eines Strichcodesymbols mit hoher Auflösung vorgesehen. Die Suche mit hoher Auflösung kann eine Analyse der Intensität jedes Pixels entlang eines Abschnitts der ausgewählten Abtastzeile einschließen. Wenn die Einrichtung 106 eine potentielle ruhige Zone erfaßt hat, in der ein Zustandsübergang von hell zu dunkel vorlag, kann der potentiellen ruhigen Zone in der Richtung der Abtastung auf ruhige Zonen ein Strichcodesymbol folgen. In diesem Fall sucht das Untersystem 110 in der gleichen Richtung wie der der Abtastung auf ruhige Zonen nach einem Anfangs- oder Endzeichen. Alternativ kann, wenn die von der Einrichtung 106 erfaßte ruhige Zone einen Zustandsübergang von dunkel zu hell aufweist, der potentiellen ruhigen Zone ein Strichcodesymbol vorausgehen. In diesem Fall durchsucht das Untersystem 110 die ausgewählte Abtastzeile in der der Richtung der Abtastung auf ruhige Zonen entgegengesetzten Richtung auf ein Anfangs- oder Endzeichen.
  • Das Untersystem 110 zur Identifikation von Anfangs- und Endzeichen stellt fest, ob ein Anfangs- oder Endzeichen an die von der Einrichtung 106 erfaßte potentielle ruhige Zone angrenzt. Das Erfassungssystem 100 kann zur Erfassung von Symbolen jeder erkannten Strichcodesymbolsprache verwendet werden. Diese können beispielsweise Symbole in den Symbolsprachen Universal Product Code (UPC), European Article Numbering System (EAN), Interleaved 2 of 5, Codabar, Code 39, Code 128, Code 93, Code 49 oder Code 16K einschließen. Das Erfassungssystem 100 kann eine Bezugstabelle enthalten, die Informationen bezüglich der Anfangs- und Endsymbole jeder beliebigen Strichcodesymbolsprache enthält. Es kann davon ausgegangen werden, daß die Anfangs- und Endzeichen Abschlußstriche oder Muster enthalten, die herkömmlicher Weise an derartige Zeichen angrenzen. Wenn das Untersystem 110 kein an die potentielle ruhige Zone angrenzendes Zeichen als eines dieser Bezugs-Anfangs- bzw. Endzeichen identifiziert, wird die potentielle ruhige Zone als falsche ruhige Zone zurückgewiesen, und die Einrichtung 118 stellt fest, ob das Ende der ausgewählten Abtastzeile erreicht ist, wie vorstehend beschrieben. Identifiziert das Untersystem 110 ein an die potentielle ruhige Zone angrenzendes Zeichen als Bezugs-Anfangs- oder Endzeichen, wird bestimmt, daß ein Strichcodesymbol in dem Pixelbild vorhanden ist, und die Verarbeitung wird von einem Untersystem 112 zum Lokalisieren der vier Ecken fortgesetzt.
  • Das Untersystem 112 zum Lokalisieren der vier Ecken versucht, die vier Ecken des von dem Untersystem 110 zur Identifikation identifizierten Strichcodesymbols zu lokalisieren. Lokalisiert das Untersystem 112 zum Lokalisieren nicht alle vier Ecken des erfaßten Strichcodesymbols, wird das erfaßte Strichcodesymbol zurückgewiesen, und die Verarbeitung wird von der Einrichtung 118 fortgesetzt. Anderenfalls decodiert nach der erfolgreichen Lokalisierung der vier Ecken des Strichcodesymbols durch das Untersystem 112 zum Lokalisieren ein Untersystem 114 zum Decodieren das erfaßte Strichcodesymbol. Das Untersystem 112 zum Lokalisieren und das Untersystem 114 zum Decodieren werden später in dieser Beschreibung jeweils im Zusammenhang mit den 4 und 9 genauer beschrieben.
  • Nach der Decodierung des erfaßten Strichcodesymbols durch das Untersystem 114 zur Decodierung ruft eine Einrichtung 116 Informationen bezüglich des das Strichcodesymbol enthaltenden Bereichs des Pixelbilds ab. Die Einrichtung 108 verwendet die von der Einrichtung 116 gespeicherten Informationen, um den selben Bereich bei der nachfolgenden Verarbeitung zu ignorieren. Nach der Erfassung und Decodierung eines Strichcodesymbols fährt das Erfassungssystem 100 mit dem Abtasten nicht abgetasteter Bereiche des Pixelbilds auf weitere Strichcodesymbole fort. Daher wird nach dem Speichern der Informationen bezüglich des das decodierte Strichcodesymbol enthaltenden Bereichs des Pixelbilds die Verarbeitung durch die Einrichtung 118 fortgesetzt, die feststellt, ob das Ende der ausgewählten Abtastzeile erreicht ist.
  • Bei dem Beispiel gemäß 2 erzeugt die Einrichtung 102 des Erfassungssystems 100 gemäß 1 ein Histogramm des Pixelbilds 200. Die Einrichtung 104 kann dann die Abtastzeile 264 als erste Abtastzeile für das Pixelbild 200 auswählen. Die Einrichtung 106 kann entlang der am Punkt 262 beginnenden Abtastzeile 264 von links nach rechts (in der Richtung der Abtastung auf ruhige Zonen) eine Abtastung auf ruhige Zonen mit geringer Auflösung ausführen. Am Punkt 266 kann die Einrichtung 106 einen Zustandsübergang von einer Folge heller Pixel zu mindestens einem dunklen Pixel erfassen, der auf eine Potentielle ruhige Zone hinweist. Die Einrichtung 108 stellt dann fest, daß die potentielle ruhige Zone nicht in einem ein vorher erfaßtes und decodiertes Strichcodesymbol enthaltenden Bereich des Pixelbilds liegt. Das Untersystem 110 zur Identifikation von Anfangs- und Endzeichen sucht mit hoher Auflösung in der Richtung der Abtastung auf ruhige Zonen entlang der Abtastzeile 264 nach einem in der Bezugstabelle enthaltenen Bezugs-Anfangs- oder Endzeichen. Da der Punkt 266 nicht der Anfang eines Anfangs- oder Endzeichens ist, identifiziert das Untersystem 110 kein Bezugs-Anfangsoder Endzeichen, was darauf hindeutet, daß die von der Einrichtung 106 erfaßte potentielle ruhige Zone eine falsche ruhige Zone war. Die Einrichtung 118 stellt dann fest, daß das Ende der Abtastzeile 264 noch nicht erreicht ist, und die Einrichtung 106 nimmt vom Punkt 266 die Abtastung auf ruhige Zonen mit geringer Auflösung entlang der Abtastzeile 264 in der Richtung der Abtastung auf ruhige Zonen (von links nach rechts) wieder auf.
  • Die Einrichtung 106 kann an einem Punkt 232 einen weiteren Zustandsübergang von einem dunklen Pixel zu einer Folge von hellen Pixeln erfassen, der auf eine weitere potentielle ruhige Zone hindeutet. Die Einrichtung 108 stellt erneut fest, daß diese potentielle ruhige Zone nicht innerhalb eines Bereichs des Pixelbilds 200 liegt, der ein zuvor decodiertes Strichcodesymbol enthält. Da der erfaßte Zustandsübergang von dunkel zu hell erfolgt, sucht das Untersystem 110 von rechts nach links, d. h. in der der Richtung der Abtastung auf ruhige Zonen entgegengesetzten Richtung, entlang der Abtastzeile 264 mit hoher Auflösung nach einem Anfangs- oder Endzeichen. Erneut identifiziert das Untersystem 110 kein Bezugs-Anfangs- oder Endzeichen, die Einrichtung 118 stellt fest, daß die Abtastzeile 264 nicht abgeschlossen ist, und die Einrichtung 106 nimmt mit geringer Auflösung am Punkt 232 die Abtastung auf ruhige Zonen entlang der Abtastzeile 264 in der Richtung der Abtastung auf ruhige Zonen von links nach rechts wieder auf.
  • Die Abtastung auf ruhige Zonen mit geringer Auflösung entlang der Abtastzeile 264 wird in der Richtung der Abtastung auf ruhige Zonen fortgesetzt, ohne daß weitere potentielle ruhige Zonen erfaßt werden, bis der Punkt 234 erreicht ist, wobei die Einrichtung 118 zu diesem Zeitpunkt feststellt, daß die Abtastzeile 264 vollständig ist. Eine Einrichtung 120 stellt dann fest, daß die Abtastzeile 264 nicht die letzte Abtastzeile für das Pixelbilds 200 ist und daß die Abtastung des Pixelbilds 200 auf ruhige Zonen daher nicht abgeschlossen ist. Die Einrichtung 104 wählt dann die Abtastzeile 210 als nächste Abtastzeile für die Abtastung auf ruhige Zonen mit geringer Auflösung von einem Punkt 208 bis zu einem Punkt 244 aus. Daher verläuft bei der Abtastung mit geringer Auflösung vom Punkt 208 bis zum Punkt 244 die Richtung der Abtastung auf ruhige Zonen von oben nach unten. Bei der Abtastung des Pixelbilds 200 auf ruhige Zonen mit gerin ger Auflösung entlang der Abtastzeile 210 kann die Einrichtung 106 entsprechend den Zustandsübergängen an den Punkten 206 und 242 potentielle ruhige Zonen erfassen, die von dem Untersystem 110 zur Identifikation als falsche ruhige Zonen zurückgewiesen werden.
  • Nach Abschluß der Abtastung des Pixelbilds 200 auf ruhige Zonen mit geringer Auflösung entlang der Abtastzeile 210 wählt die Einrichtung 104 die Abtastzeile 270 aus und leitet eine Abtastung von einem Punkt 268 zu einem Punkt 226 in der Richtung der Abtastung auf ruhige Zonen von links nach rechts ein. Nach der Erfassung einer weiteren falschen ruhigen Zone am Punkt 212 erfaßt die Einrichtung 106 am Punkt 224 einen Zustandsübergang von einem dunklen zu einer Folge von hellen Pixeln, und bestimmt stellt die Einrichtung 108, daß der Bereich nicht ignoriert werden darf. Das Untersystem 110 führt dann mit hoher Auflösung von rechts nach links (d. h. in der der Richtung der Abtastung auf ruhige Zonen entgegengesetzten Richtung) entlang der Abtastzeile 270 eine Suche nach einem Anfangs- oder Endzeichen aus. In diesem Fall kann das Untersystem 110 zur Identifikation am Punkt 224 ein Bezugs-Anfangs- und Endzeichen identifizieren. Das Untersystem 112 zur Lokalisierung lokalisiert dann Ecken 214, 230, 246 und 260, und das Untersystem 114 zur Decodierung decodiert das Strichcodesymbol 202.
  • Nach der Decodierung des Strichcodesymbols 202 fährt das Erfassungssystem 100 fort, das Pixelbild 200 entlang weiterer ausgewählter Abtastzeilen auf weitere Strichcodesymbole abzutasten. Die Einrichtung 108 kann das Erfassungssystem 100 anweisen, bei der Ausführung der nachfolgenden Abtastung auf ruhige Zonen mit geringer Auflösung den das erfaßte und decodierte Strichcodesymbol 202 enthaltenden Bereich des Pixelbilds 200 zu ignorieren. Daher ignoriert das Erfassungssystem 100 anschließend zu dem Strichcode symbol 202 gehörige potentielle ruhige Zonen. Das Erfassungssystem 100 kann nach Abschluß der Abtastzeile 270 beispielsweise eine Abtastung mit geringer Auflösung entlang der Abtastzeile 258 vornehmen. Hierbei ignoriert das Erfassungssystem 100 sowohl die potentielle ruhige Zone am Punkt 256 als auch die potentielle ruhige Zone am Punkt 236.
  • Das Erfassungssystem 100 fährt fort, das Pixelbild 200 auf weitere Strichcodesymbole abzutasten, bis die Einrichtung 120 feststellt, daß die letzte ausgewählte Abtastzeile vollständig abgetastet wurde. Bei dem dargestellten Beispiel fährt das Erfassungssystem 100 fort, Abtastzeilen auszuwählen, bis jede der vierzehn Gitternetzlinien 240 gemäß 2 ausgewählt wurde.
  • Die Identifikation der Anfangs- und Endzeichen von Strichcodesymbolen
  • In 3 ist ein Ablaufdiagramm der von dem Untersystem 110 des Erfassungssystems 100 zur Identifikation von Anfangs- und Endzeichen ausgeführten Verarbeitung zur Identifikation von Anfangsund Endzeichen von Strichcodesymbolen. Das Untersystem 110 zur Identifikation sucht in der durch die Art des von der Einrichtung 106 des Erfassungssystems 100 erfaßten Zustandsübergangs vorgegebenen Richtung mit hoher Auflösung entlang der ausgewählten Abtastzeile nach einem Anfangs- oder Endzeichen. Wenn ein Bezugs-Anfangs- oder Endzeichen identifiziert wird, überprüft das Untersystem 110 zur Identifikation diese Identifikation durch eine Suche nach dem gleichen Anfangs- oder Endzeichen entlang zu der ausgewählten Abtastzeile parallelen Suchzeilen.
  • Zur Erzeugung einer ersten Folge von Breiten von Symbolelementen zur Erfassung eines Anfangs- oder Endzeichens eines Strich codesymbols entlang der ausgewählten Abtastzeile ist eine Einrichtung 302 vorgesehen. Jedes Element in der Folge weist eine Elementbreite auf und ist entweder ein Strich oder ein Zwischenraum. Die Einrichtung 302 leitet die Elementbreiten der Folge von den bei einer Unterpixelinterpolation entlang einem Abschnitt der ausgewählten Abtastzeile erzeugten Signalenergiewerten ab. Die Unterpixelinterpolation wird später in dieser Beschreibung im Zusammenhang mit den 14 und 15 beschrieben.
  • Die Suche nach einem Anfangs- oder Endzeichen beginnt vorzugsweise an dem zur Erfassung der potentiellen ruhigen Zone verwendeten Punkt des Zustandsübergangs. Jedes Bezugs-Anfangs- oder Endzeichen in einer Bezugstabelle weist eine eindeutige Folge von Elementbreiten auf, und unterschiedliche Strichcodesymbolsprachen können Anfangs- und Endzeichen mit verschiedenen Anzahlen von Symbolelementen aufweisen. Die Einrichtung 302 erzeugt vorzugsweise eine erste Folge von n Elementbreiten, wobei n der Anzahl der Symbolelemente des Bezugs-Anfangs- oder Endzeichens in der Bezugstabelle mit der größten Anzahl an Symbolelementen entspricht.
  • Wird das Erfassungssystem 100 beispielsweise nur verwendet, um Strichcodesymbole in Code 128 zu erfassen und zu decodieren, erzeugt die Einrichtung 302 vorzugsweise eine erste Folge von fünf Elementbreiten. Im Code 128 hat ein Anfangszeichen sechs Elemente (drei Striche und drei Zwischenräume) und ein den Schlußstrich enthaltendes Endzeichen sieben Elemente (vier Striche und drei Zwischenräume). Die Anfangs- und Endzeichen im Code 128 können jedoch eindeutig durch Erfassung der Breiten nur der ersten fünf Elemente identifiziert werden. Bei dem Anfangszeichen des Code 128 sind die fünf erfaßten Elemente die drei Striche und die beiden Zwischenräume, an die diese drei Striche angrenzen. Bei dem Endzei chen des Code 128 sind die fünf charakterisierten Elemente der Schlußstrich, die beiden am nächsten bei dem Schlußstrich liegenden Striche und die beiden Zwischenräume, an die diese beiden Striche und der Schlußstrich angrenzen. Da ein potentielles Anfangsund Endzeichen entweder ein Anfangs- oder ein Endzeichen des Code 128 sein kann, erzeugt die Einrichtung 302 eine erste Folge von fünf Elementbreiten.
  • Der Abschnitt der ausgewählten Abtastzeile, entlang dem die Einrichtung 302 eine Unterpixelinterpolation zur Erzeugung der ersten Folge von Elementbreiten ausführt, beginnt am Punkt des Zustandsübergangs und setzt sich fort, bis eine Folge von n Elementbreiten erzeugt ist. Ist das Ende der ausgewählten Abtastzeile erreicht, bevor sämtliche n Elementbreiten bestimmt sind, entspricht der aktuelle Punkt des Zustandsübergangs keinem Bezugs-Anfangsoder Endzeichen. Zudem kann, wenn ein "Strich" oder "Zwischenraum" zu breit ist, um einem Element der erwarteten Strichcodesymbole zu entsprechen, die Erzeugung der Folge von Elementbreiten eingestellt werden, und es wird kein Anfangs- oder Endzeichen identifiziert.
  • Die Einrichtung 304 vergleicht die erste Folge von Elementbreiten mit den Bezugs-Anfangs- und Endzeichen. Wenn die Einrichtung 304 feststellt, daß die erste Folge zu keinem der Bezugs-Anfangsund Endzeichen paßt, wird kein Anfangs- oder Endzeichen eines Strichcodesymbols identifiziert, und die Verarbeitung wird an die Einrichtung 118 des Erfassungssystems 100 gemäß 1 weitergegeben. Ein Zusammenpassen von Folgen von Elementbreiten und Bezugs-Anfangs- und Endzeichen basiert vorzugsweise auf statistischen Sicherheiten, wie später in dieser Beschreibung im Zusammenhang mit 16 beschrieben.
  • Stellt die Einrichtung 304 jedoch fest, daß die erste Folge einem Bezugs-Anfangs- oder Endzeichen entspricht, erzeugt die Einrichtung 306 durch Ausführen einer Unterpixelinterpolation entlang einer zu der ausgewählten Abtastzeile parallelen und nahe bei dieser gelegenen ersten Prüfsuchzeile eine zweite Folge von Elementbreiten. Die erste Prüfsuchzeile kann in bezug auf die ausgewählte Abtastzeile um einige Pixel versetzt sein. Die Einrichtung 308 bestimmt, ob die zweite Folge von Elementbreiten dem von der Einrichtung 304 identifizierten Bezugs-Anfangs- oder Endzeichen entspricht. Entspricht die zweite Folge dem gleichen Bezugs-Anfangs- oder Endzeichen, wird das von der Einrichtung 304 identifizierte Anfangs- oder Endzeichen bestätigt, und die Verarbeitung wird mit der bestätigten Identifikation eines Strichcodesymbols von dem Untersystem 112 zum Lokalisieren des Erfassungssystems 100 gemäß 1 fortgesetzt.
  • Bestätigt die Einrichtung 308 die Identifikation eines Bezugs-Anfangs- oder Endzeichens durch die Einrichtung 304 nicht, wird durch eine Einrichtung 310 und eine Einrichtung 312 der Versuch einer zweiten Bestätigung unternommen. Die Einrichtungen 310 und 312 arbeiten im wesentlichen jeweils entsprechend der Einrichtung 306 und der Einrichtung 308, außer daß eine zweite Prüfsuchzeile analysiert wird. Die zweite Prüfsuchzeile ist auf der der ersten Prüfsuchzeile gegenüberliegenden Seite der ausgewählten Abtastzeile angeordnet. Bestätigt die Einrichtung 312 das von der Einrichtung 304 identifizierte Anfangs- oder Endzeichen, wird die Verarbeitung mit der bestätigten Identifikation eines Strichcodesymbols von dem Untersystem 112 zur Lokalisierung des Erfassungssystems 100 gemäß 1 fortgesetzt. Anderenfalls identifiziert das Untersystem 110 zur Identifikation kein Anfangs- oder Endzeichen eines Strichcodesymbols, und die Verarbeitung wird an die Einrichtung 118 des Erfassungssystems 100 gemäß 1 weitergegeben.
  • Bei dem Beispiel gemäß 2 führt die Einrichtung 302 des Untersystems 110 zur Identifikation nach der Erfassung einer potentiellen ruhigen Zone am Punkt 224 längs der Abtastzeile 270 durch das Erfassungssystem 100 zur Erzeugung einer ersten Folge von Elementbreiten eine Unterpixelinterpolation entlang der Abtastzeile 270 aus. Stellt die Einrichtung 304 fest, daß die erste Folge einem Bezugs-Anfangs- oder Endzeichen entspricht, führt die Einrichtung 306 zur Erzeugung einer zweiten Folge von Elementbreiten eine Unterpixelinterpolation entlang einer ersten Prüfsuchzeile 222 aus. Stellt die Einrichtung 308 fest, daß die zweite Folge das von der Einrichtung 304 identifizierte Anfangs- oder Endzeichen bestätigt, gibt die Einrichtung 308 die Verarbeitung mit einem bestätigten Anfangsoder Endzeichen an das Untersystem 112 zur Lokalisierung des Erfassungssystems 100 gemäß 1 weiter.
  • Entspricht die zweite Folge nicht dem von der Einrichtung 304 identifizierten Bezugs-Anfangs- oder Endzeichen, führt die Einrichtung 310 zur Extraktion einer dritten Folge von Elementbreiten eine Unterpixelinterpolation entlang einer zweiten Prüfsuchzeile 228 aus. Die Einrichtung 312 stellt dann fest, ob die dritte Folge das von der Einrichtung 304 identifizierte Anfangs- oder Endzeichen bestätigt. Ein Anfangs- oder Endzeichen kann aus verschiedenen Gründen von der Einrichtung 304 identifiziert und weder von der Einrichtung 308 noch von der Einrichtung 312 bestätigt werden. Die Identifikation durch die Einrichtung 304 kann fälschlicherweise positiv sein, wobei ein Strichcodesymbol identifiziert wird, wo keines ist. Alternativ kann ein Strichcodesymbol vorhanden sein, es kann jedoch in dem Pixelbild eine verschlechterte Qualität aufweisen. Eine derartige verschlechterte Qualität kann durch physische Defekte an dem Aufkleber, der das Strichcodesymbol trägt, oder durch Defekte verursacht werden, die bei der Erzeugung des Pixelbilds des Aufklebers auftreten.
  • Lokalisierung der vier Ecken eines Strichcodesymbols
  • 4 zeigt ein Ablaufdiagramm der von dem Untersystem 112 des Erfassungssystems 100 zur Lokalisierung der vier Ecken ausgeführten Verarbeitung zur Lokalisierung der vier Ecken eines Strichcodesymbols. Das Untersystem 112 zur Lokalisierung beginnt mit dem Lokalisieren von zwei Ecken des von dem Untersystem 110 identifizierten Anfangs- oder Endzeichens. Diese beiden Ecken entsprechen den beiden Ecken des ersten oder äußersten Strichs des ersten Anfangs- oder Endzeichens. Das Untersystem 112 zur Lokalisierung versucht dann, durch Suchen nach der zweiten ruhigen Zone und dem zweiten zu dem Strichcodesymbol gehörigen Anfangs- oder Endzeichen das andere Ende des Strichcodesymbols zu finden. Werden die zweite ruhige Zone und das zweite Anfangs- oder Endzeichen erfolgreich gefunden, lokalisiert das Untersystem 112 zum Lokalisieren die beiden letzten Ecken des Strichcodesymbols. Die beiden Ecken entsprechen den beiden Ecken des äußersten Strichs des zweiten Anfangs- oder Endzeichens. Jede Ecke wird durch die Position des Pixels in dem Pixelbild definiert, das die Ecke des Strichcodesymbols enthält.
  • Die Einrichtung 402 lokalisiert die beiden ersten Ecken des identifizierten Strichcodesymbols, d. h. die obere und die untere des äußersten Strichs des durch das Untersystem 110 zur Identifikation identifizierten Anfangs- oder Endzeichens. Die Einrichtung 402 wird später in dieser Beschreibung im Zusammenhang mit 6 genauer beschrieben. Nachdem die beiden ersten Ecken gefunden sind, bestimmt eine Einrichtung 404 die Position einer Linie, die die Linie, die die beiden ersten Ecken verbindet, schneidet und senkrecht zu dieser ist. Die Einrichtung 404 führt entlang der senkrechten Schnittlinie eine Abtastung auf ruhige Zonen mit geringer Auflösung über das erfaßte Strichcodesymbol aus, um die zweite ruhige Zone am anderen Ende des Symbols zu finden.
  • Eine Einrichtung 406 stellt durch eine Suche nach einer kontinuierlichen Folge von n hellen Pixeln entlang der senkrechten Schnittlinie fest, ob die zweite ruhige Zone gefunden wird, wobei n größer als der zweite Schwellenwert ist. Der zweite Schwellenwert wurde früher in dieser Beschreibung im Zusammenhang mit 1 beschrieben. Wird keine zweite ruhige Zone gefunden, werden die vier Ecken nicht lokalisiert, und die Einrichtung 406 gibt die Verarbeitung an die Einrichtung 118 des Erfassungssystems 100 gemäß 1 weiter. Findet die Einrichtung 406 die zweite ruhige Zone, führt eine Einrichtung 408 zur Erzeugung einer ersten Folge von Elementbreiten eine Unterpixelinterpolation entlang einer ersten Suchzeile aus. Die erste Suchzeile kann eine Pixelzeile oder -spalte sein, die die senkrechte Schnittlinie an der Kante der zweiten ruhigen Zone schneidet.
  • Eine Einrichtung 410 stellt fest, ob die von der Einrichtung 408 erzeugte erste Folge von Elementbreiten dem Anfangs- oder Endzeichen entspricht, das komplementär zu dem von dem Untersystem 110 zur Identifikation identifizierten Anfangs- oder Endzeichen ist. Strichcodesymbole enthalten eindeutige Anfangs- und Endzeichen, die die Art der Strichcodesymbolsprache angeben. Jedes Strichcodesymbol weist ein Paar komplementärer Anfangs- und Endzeichen auf, von denen jedes die Symbolsprache des Strichcodesymbols identifiziert. Daher muß, wenn einmal ein erstes Anfangs- oder Endzeichen an einem Ende eines Strichcodesymbols identifiziert ist, das zweite Anfangs- oder Endzeichen am anderen Ende des Strichcodesymbols komplementär zu dem ersten Anfangs- oder Endzeichen sein, bevor die Identifikation eines Strichcodesymbols bestätigt werden kann. Im Code 128 existieren beispielsweise drei verschiedene Anfangszeichen und ein Endzeichen. Wird eines der drei Anfangszeichen des Code 128 identifiziert, ist das komplementäre Endzeichen bekannt. Ähnlich muß, wenn das Endzeichen des Code 128 identifiziert wird, das komplementäre Anfangszeichen eines der drei möglichen Anfangszeichen des Code 128 sein.
  • Stellt die Einrichtung 410 fest, daß die erste Folge von von der Einrichtung 408 erzeugten Elementbreiten dem komplementären Anfangs- oder Endzeichen entspricht, wird das zweite Anfangs- oder Endzeichen bestätigt, und eine Einrichtung 420 findet die beiden letzten Ecken des erfaßten Strichcodesymbols, d. h. die, die die oberste und die unterste Ecke des äußersten Strichs des zweiten Anfangsoder Endzeichens definieren. Die Einrichtung 420 arbeitet im wesentlichen entsprechend der Einrichtung 402 und wird später in dieser Beschreibung im Zusammenhang mit 6 im einzelnen beschrieben. Nach der Einrichtung 420 setzt das Untersystem 114 zur Decodierung des Erfassungssystems 100 die Verarbeitung fort.
  • Wenn die von der Einrichtung 408 erzeugte erste Folge von Elementbreiten nicht zu dem komplementären Anfangs- oder Endzeichen paßt, führt eine Einrichtung 412 zur Erzeugung einer zweiten Folge von Elementbreiten eine Unterpixelinterpolation entlang einer zweiten Suchzeile aus. Die zweite Suchzeile kann parallel zu der ersten Suchzeile verlaufen und in deren Nähe liegen. Die zweite Suchzeile kann parallel zu der ersten Suchzeile und in bezug auf diese um einige Pixel versetzt sein. Eine Einrichtung 414 stellt dann fest, ob die zweite Folge dem komplementären Anfangs- oder Endzeichen ent spricht. Ist dies der Fall, wird die Verarbeitung von der Einrichtung 420 zur Lokalisierung der beiden anderen Ecken des Strichcodesymbols fortgesetzt. Anderenfalls erzeugt eine Einrichtung 416 durch Ausführen einer Unterpixelinterpolation entlang einer dritten Suchzeile, die sich auf der der zweiten Suchzeile gegenüberliegenden Seite der ersten Suchzeile befindet, eine dritte Folge von Elementbreiten. Eine Einrichtung 418 stellt dann fest, ob die dritte Folge dem komplementären Anfangs- oder Endzeichen entspricht. Ist dies der Fall, wird die Verarbeitung von der Einrichtung 420 zur Lokalisierung der beiden anderen Ecken des Strichcodesymbols fortgesetzt. Anderenfalls wird das komplementäre Anfangs- oder Endzeichen nicht identifiziert, die vier Ecken des Strichcodesymbols werden nicht lokalisiert, und die Verarbeitung wird an die Einrichtung 118 des Erfassungssystems 100 zurückgegeben.
  • Bei dem Beispiel gemäß 2 lokalisiert die Einrichtung 402 des Untersystems 112 zur Lokalisierung der vier Ecken nach der Identifikation und Bestätigung eines ersten Anfangs- oder Endzeichens des Strichcodesymbols 202 am Punkt 224 entlang der Abtastzeile 270 durch das Erfassungssystem 100 die Ecken 214 und 230. Die Einrichtung 404 bestimmt die Position einer Linie 220, die die Linie zwischen den Ecken 214 und 230 am Punkt 218 schneidet und senkrecht zu dieser ist. Die Einrichtung 404 nimmt dann mit geringer Auflösung entlang der Linie 220 eine Abtastung des Strichcodesymbols 202 auf die zweite ruhige Zone am anderen Ende des Strichcodesymbols 202 vor. Die Einrichtung 406 lokalisiert durch Erfassen einer kontinuierlichen Folge von hellen Pixeln, die länger als der zweite Schwellenwert ist, die auf den Punkt 248 folgende zweite ruhige Zone an dieser Position. Die Einrichtung 408 führt dann zur Erzeugung einer ersten Folge von Elementbreiten von links nach rechts eine Unterpixelinterpolation entlang der Suchzeile 252 aus. Die Ein richtung 410 kann dann feststellen, daß die erste Folge zu dem zu dem ersten Anfangs- oder Endzeichen komplementären Zeichen paßt. In diesem Fall findet die Einrichtung 420 die Ecken 246 und 260. Würde die Einrichtung 410 feststellen, daß die erste Folge nicht dem komplementären Anfangs- bzw. Endzeichen entspricht, würde das Untersystem 112 zur Lokalisierung versuchen, das komplementäre Anfangs- bzw. Endzeichen unter Verwendung der Einrichtungen 412 und 414 entlang der Suchzeile 254 und gegebenenfalls unter Verwendung der Einrichtung 416 und 418 entlang der Suchzeile 250 zu identifizieren.
  • Das Lokalisieren von zwei Ecken eines Strichcodesymbols
  • In 5 ist eine grafische Darstellung eines Unterbilds 500 des Pixelbilds 200 gemäß 2 gezeigt. Jedes Quadrat in 5 repräsentiert ein durch den Spaltenindex i und den Zeilenindex j identifiziertes Pixel (i, j) in dem Pixelbild 500, wobei i und j Werte von 0 bis 15 bezeichnen. Die Pixelzeile 6 in 5 entspricht der Abtastzeile 270 in 2, und das Pixel (13, 6) entspricht dem Punkt 224 in 2. Pixel, die nicht an den äußeren Kanten des Pixelbilds 200 liegen, weisen acht benachbarte Pixel auf. Die Nachbarn des Pixels (13, 6) sind beispielsweise die Pixel (13, 5), (14, 5), (14, 6), (14, 7), (13, 7), (12, 7), (12, 6) und (12, 5).
  • Die Pixel in 5 weisen einen schwarzen Punkt auf, wenn das Intensitätsniveau ihrer Graustufe kleiner als der erste Schwellenwert ist oder diesem entspricht. Ähnlich weisen die Pixel in 5 keinen schwarzen Punkt auf, wenn ihr Intensitätsniveau größer als der erste Schwellenwert ist. Wie früher in dieser Beschreibung im Zusammenhang mit 1 beschrieben, kann der erste Schwellenwert anhand des von der Einrichtung 102 des Erfassungssystems 100 erzeugten Histogramms des Pixelbilds bestimmt werden. Die mit einem schwarzen Punkt dargestellten Pixel können einen Teil eines Strichs des Strichcodesymbols 202 bilden. Die nicht mit einem schwarzen Punkt dargestellten Pixel können einen Teil der Zwischenräume in dem Strichcodesymbol 202 bilden.
  • In 6 ist ein Ablaufdiagramm der von einem Untersystem 600 zur Lokalisierung von zwei Ecken ausgeführten Verarbeitung zum Lokalisieren von zwei Ecken eines Strichcodesymbols. Die Einrichtung 402 und die Einrichtung 420 des Untersystems 112 zur Lokalisierung von vier Ecken gemäß 4 arbeiten im wesentlichen wie das Untersystem 600 zur Lokalisierung von zwei Ecken. Das Untersystem 600 zur Lokalisierung findet zwei Ecken eines erfaßten Strichcodesymbols durch eine Bewegung entlang der "Außenkante" eines Strichs, der ein äußeres Symbolelement eines Anfangs- bzw. Endzeichens bildet, um die äußeren Ecken dieses Strichs zu finden. Die "Außenkante" eines Strichs, der ein äußeres Symbolelement eines gegebenen Anfangs- bzw. Endzeichens bildet, ist angeordnet, wo das Anfangs- bzw. Endzeichen und die zugehörige ruhige Zone zusammentreffen.
  • Zur Vereinfachung der Erläuterung wird das Untersystem 600 zur Lokalisierung im Zusammenhang mit dem Beispiel gemäß den 2 und 5 beschrieben. Nach der Identifikation des Anfangsbzw. Endzeichens des Strichcodesymbols 202 in dem Pixelbild 200 durch das Erfassungssystem 100 aktiviert das Untersystem 112 zur Lokalisierung die Einrichtung 402, um die Ecken 214 und 230 zu lokalisieren. Nachdem das komplementäre Anfangs- bzw. Endzeichen gefunden wurde, aktiviert das Untersystem 112 die Einrichtung 420, die dann die Ecken 246 und 260 lokalisiert.
  • Das Untersystem 600 zur Lokalisierung empfängt als Eingang das "ursprüngliche Ausgangspixel". Ein ursprüngliches Ausgangspixel ist ein Pixel in einer ruhigen Zone, das neben einem Anfangs- oder Endzeichen liegt. Ein ursprüngliches Ausgangspixel kann von dem Untersystem 110 zur Identifikation oder von dem Untersystem 112 zur Lokalisierung bestimmt werden. Ein ursprüngliches Ausgangspixel ist vorzugsweise ein helles Pixel, das einen Teil einer ruhigen Zone bildet und unmittelbar neben einem dunklen Pixel liegt, das einen Teil des ersten oder äußersten Strichs eines der beiden Anfangs- und Endzeichen eines erfaßten Strichcodesymbols bildet. Bei dem Beispiel gemäß 2 entspricht die Position des ursprünglichen Ausgangspixels dem Punkt 224, und in 5 wird es durch das Pixel (13, 6) repräsentiert.
  • Das Untersystem 600 zur Lokalisierung empfängt als Eingang auch die Suchrichtung, in der das Erfassungssystem 100 nach dem zu dem ursprünglichen Ausgangspixel gehörigen Anfangs- bzw. Endzeichen gesucht hat. Es existieren vier mögliche Suchrichtungen: Osten, Westen, Norden und Süden, die einer Suche entlang den Pixelzeilen und -spalten entsprechen. Diese vier Richtungen sind zusammen mit den vier Zwischenrichtungen Nordost, Südost, Südwest und Nordwest in 5 definiert. Jeder der acht Nachbarn des aktuellen Ausgangspixels weist in bezug auf das aktuelle Ausgangspixel eine eindeutige Richtung auf. Bei dem Beispiel gemäß 5 ist die von dem Untersystem 600 zur Lokalisierung empfangene Suchrichtung Westen, da die Suche mit hoher Auflösung nach dem an den Punkt 224 angrenzenden Anfangs- bzw. Endzeichen entlang der Linie 270 von Osten nach Westen erfolgte.
  • Das Untersystem 600 zur Lokalisierung findet eine Ecke, indem es bei der Suche nach der Ecke der Außenkante des ersten Strichs eines Anfangs- bzw. Endzeichens folgt. Das Untersystem 600 zur Lokalisierung folgt der Außenkante des Strichs, indem es das aktuelle Ausgangspixel nach der Analyse der Nachbarn des aktuellen Ausgangspixels entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn durch das nächste Ausgangspixel ersetzt. Die Auswahl einer im Uhrzeigersinn ausgerichteten Folge führt zur Lokalisierung einer der beiden Ecken des ersten Strichs des Anfangs- bzw. Endzeichens, wogegen die Auswahl einer gegen den Uhrzeigersinn ausgerichteten Folge zur Lokalisierung der anderen Ecke führt. Da das Untersystem 600 zur Lokalisierung schließlich beide Ecken lokalisiert, verwendet das Untersystem 600 zur Lokalisierung sowohl die im Uhrzeigersinn ausgerichtete Reihenfolge zur Lokalisierung einer Ecke als auch die gegen den Uhrzeigersinn ausgerichtete Reihenfolge zur Lokalisierung der anderen Ecke. Es spielt keine Rolle, welche Ausrichtungsreihenfolge zuerst ausgewählt wird. Die Auswahl eines nächsten Ausgangspixels auf der Grundlage eines aktuellen Ausgangspixels unter Verwendung einer im Uhrzeigersinn oder gegen den Uhrzeigersinn ausgerichteten Reihenfolge wird später in dieser Beschreibung im Zusammenhang mit 7 genauer beschrieben.
  • Nachdem das Untersystem 600 das ursprüngliche Ausgangspixel und die Suchrichtung als Eingänge empfangen hat, wählt eine Einrichtung 602 eine im Uhrzeigersinn ausgerichtete Folge zur Verwendung bei der Auswahl des nächsten Ausgangspixels anhand eines aktuellen Ausgangspixels aus. Eine Einrichtung 604 stellt dann das ursprüngliche Pixel als aktuelles Ausgangspixel ein, und eine Einrichtung 606 beginnt die Liste der ausgewählten Ausgangspixel. Das Untersystem 600 zur Lokalisierung hält eine Liste der letzten n als Ausgangspixel ausgewählten Pixel, wobei n vorzugsweise 5 beträgt. Die Einrichtung 606 beginnt das Erstellen der Liste der ausgewählten Ausgangspixel mit dem ursprünglichen Ausgangspixel.
  • Ein Untersystem 608 zur Auswahl der Ausgangspixel wählt auf der Grundlage der Ausrichtung der ausgewählten Reihenfolge (d. h. im Uhrzeigersinn oder gegen den Uhrzeigersinn) und der Suchrichtung anhand des aktuellen Ausgangspixels das nächste Ausgangspixel aus. Das Untersystem 608 zur Auswahl der Ausgangspixel wird später in dieser Beschreibung im Zusammenhang mit 7 genauer beschrieben. Eine Einrichtung 610 aktualisiert dann die Liste der ausgewählten Ausgangspixel durch Anfügen des aktuellen Ausgangspixels an das Ende der Liste, und eine Einrichtung 612 stellt das nächste Ausgangspixel als aktuelles Ausgangspixel ein. Nachdem die Liste der ausgewählten Ausgangspixel die bevorzugte Länge von fünf Pixeln erreicht hat, aktualisiert die Einrichtung 610 die Liste durch Anfügen des aktuellen Ausgangspixels an das Ende der Liste und Löschen des ersten Ausgangspixels in der Liste.
  • Stellt eine Einrichtung 614 fest, daß die Länge der Liste der ausgewählten Ausgangspixel kleiner als der bevorzugte Schwellenwert von fünf ist, wird die Verarbeitung zur Auswahl des nächsten Ausgangspixels an das Untersystem 608 zur Auswahl der Ausgangspixel zurückgegeben. Anderenfalls erzeugt eine Einrichtung 616 einen aktuellen Vektor. Der aktuelle Vektor wird durch Übertragen des Ursprungs des Vektors von dem ersten Ausgangspixel in der Liste der ausgewählten Ausgangspixel auf das letzte Ausgangspixel in der Liste bestimmt, wobei der Ursprung jedes Pixel in dem Pixelbild sein kann. Stellt die Einrichtung 618 fest, daß der aktuelle Vektor der erste von dem Untersystem 600 zur Lokalisierung erzeugte Vektor für die Ausrichtung der ausgewählten Reihenfolge ist, sichert eine Einrichtung 620 den aktuellen Vektor vor der Fortsetzung der Verarbeitung durch die Einrichtung 622 als Bezugsvektor, anderenfalls wird die Verarbeitung direkt von der Einrichtung 622 fortgesetzt.
  • Die Einrichtung 622 berechnet die Größe der Vektordifferenz zwischen dem aktuellen Vektor und dem Bezugsvektor. Wenn eine Einrichtung 624 feststellt, daß die Größe kleiner als ein bestimmter dritter Schwellenwert ist, wurde noch keine Ecke erfaßt, und die Verarbeitung wird an das Untersystem 608 zur Auswahl eines Ausgangspixels zurückgegeben. Anderenfalls wurde eine Ecke erfaßt, und eine Einrichtung 626 wählt ein der erfaßten Ecke entsprechendes Pixel aus. Stellt die Einrichtung 628 dann fest, daß die erfaßte Ecke lediglich die erste der beiden zu lokalisierenden Ecken ist, wählt eine Einrichtung 630 eine gegen den Uhrzeigersinn ausgerichtete Reihenfolge aus, und die Verarbeitung wird zum Einleiten der Suche nach der zweiten Ecke an die Einrichtung 604 zurückübertragen. Zur Suche nach der zweiten Ecke in einer gegen den Uhrzeigersinn ausgerichteten Reihenfolge kehrt die Einrichtung 604 zu dem ursprünglichen Ausgangspixel als aktuelles Ausgangspixel zurück, und die Einrichtung 606 beginnt die Liste der ausgewählten Ausgangspixel mit nur dem ursprünglichen Ausgangspixel erneut. Anderenfalls wurden, wenn die Einrichtung 628 feststellt, daß die gerade erfaßte Ecke die zweite Ecke ist, beide Ecken lokalisiert, und die Verarbeitung durch das Untersystem 600 zur Lokalisierung ist abgeschlossen.
  • Für Fachleute ist ersichtlich, daß das Untersystem 600 zur Lokalisierung Ecken von Strichcodesymbolen unter Verwendung anderer Meßwerte als der Größe der Vektordifferenz erfassen kann. So kann die Einrichtung 622 beispielsweise die Größe des Winkels zwischen dem aktuellen Vektor und dem Bezugsvektor berechnen. Dies kann als Phase der Vektordifferenz bezeichnet werden. Die Einrichtung 624 überprüft dann diese Phase anhand eines ausgewählten Schwellenwerts für die Phase. Ist die Phase kleiner als der Schwel lenwert für die Phase, wurde noch keine Ecke erfaßt, anderenfalls wurde eine Ecke erfaßt.
  • Die Auswahl des nächsten Ausgangspixels anhand eines aktuellen Ausgangspixels
  • In 7 ist ein Ablaufdiagramm der von dem Untersystem 608 zur Auswahl eines Ausgangspixels ausgeführten Verarbeitung zur Auswahl eines nächsten Ausgangspixels anhand eines aktuellen Ausgangspixels gezeigt. Das Untersystem 608 zur Auswahl bildet einen Teil des Untersystems 600 zur Lokalisierung von zwei Ecken. Das Untersystem 608 zur Auswahl wählt das nächste Ausgangspixel aus den acht neben dem aktuellen Ausgangspixel liegenden Pixeln aus. Wie das aktuelle Ausgangspixel, bildet das nächste Ausgangspixel einen Teil der ruhigen Zone. Zusätzlich dazu, daß das nächste Ausgangspixel ein Nachbar des aktuellen Ausgangspixels ist, liegt es unmittelbar neben einem weiteren Nachbarn des aktuellen Ausgangspixels, wobei der weitere Nachbar einen Teil des äußersten Strichs des Anfangs- bzw. Endzeichens bildet.
  • Wenn die Intensitätsniveaus von zwei Pixeln beide kleiner als der erste Schwellenwert sind oder mit diesem übereinstimmen, werden sie als "ähnlich" eingestuft, da sie beide Teile eines oder mehrerer Striche bilden können. Zwei Pixel werden auch als ähnlich eingestuft, wenn ihre Intensitätsniveaus beide größer als der erste Schwellenwert sind, da sie beide Teile eines oder mehrerer Zwischenräume bilden können. In 5 sind beispielsweise die Pixel (12, 6) und (11, 6) sowie (12,7) und (13, 6), nicht jedoch die Pixel (12, 6) und (13, 6) einander ähnlich.
  • Das Untersystem 608 zur Auswahl empfängt als Eingang das aktuelle Ausgangspixel, die Suchrichtung und die ausgewählte Aus richtung der Reihenfolge. Die ausgewählte Ausrichtung der Reihenfolge kann entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn verlaufen. Das Untersystem 608 zur Auswahl analysiert zur Bestimmung des nächsten Ausgangspixels die Nachbarn des aktuellen Ausgangspixels entweder in einer im Uhrzeigersinn oder in einer gegen den Uhrzeigersinn ausgerichteten Reihenfolge. Nach dem Empfang des Eingangs stellt eine Einrichtung 702 des Untersystems 608 zur Auswahl den aktuellen Nachbarn von dem aktuellen Ausgangspixel auf den Nachbarn in der Suchrichtung ein. Ist die Suchrichtung beispielsweise Westen, wählt die Einrichtung 702 den westlichen Nachbarn des aktuellen Ausgangspixels als aktuellen Nachbarn aus.
  • Eine Einrichtung 704 bestimmt, ob der aktuelle Nachbar dem aktuellen Ausgangspixel ähnlich ist, d. h. ob sie beide helle Pixel sind, die einen Teil einer ruhigen Zone bilden können. Ist dies der Fall, kehrt vor der Fortführung durch eine Einrichtung 708 eine Einrichtung 706 vorübergehend die ausgewählte Ausrichtung der Reihenfolge der Analyse der Nachbarn um, d. h. aus dem Uhrzeigersinn in den Gegenuhrzeigersinn oder aus dem Gegenuhrzeigersinn in den Uhrzeigersinn, je nachdem, welche Ausrichtung betroffen ist. Diese Umkehrung der ausgewählten Ausrichtung der Reihenfolge ist dadurch vorübergehend, daß die umgekehrte Ausrichtung der Reihenfolge lediglich beibehalten wird, bis die Verarbeitung durch das Untersystem 608 zur Auswahl abgeschlossen ist. Wird die Verarbeitung an das Untersystem 600 zur Lokalisierung zurückgegeben, wird die Ausrichtung der Reihenfolge wieder zu der vor der Implementierung des Untersystems 608 zur Auswahl zurückgeführt. Anderenfalls, wenn der aktuelle Nachbar dem aktuellen Ausgangspixel nicht ähnlich ist, wird die Verarbeitung direkt von der Einrichtung 708 fortgesetzt.
  • Die Einrichtung 708 wählt den nächsten Nachbarn durch eine Bewegung um das aktuelle Ausgangspixel in Schritten von 45 Grad in der ausgewählten Ausrichtung der Reihenfolge von dem aktuellen Nachbarn aus. Sind der aktuelle Nachbar beispielsweise der westliche Nachbar und die ausgewählte Ausrichtung der Reihenfolge der Uhrzeigersinn, wählt die Einrichtung 708 den nordwestlichen Nachbarn als nächsten Nachbarn aus. Ähnlich wird, wenn der aktuelle Nachbar der westliche Nachbar und die ausgewählte Ausrichtung der Reihenfolge der Gegenuhrzeigersinn sind, der südwestliche Nachbar als nächster Nachbar ausgewählt.
  • Stellt eine Einrichtung 710 fest, daß der nächste Nachbar dem aktuellen Nachbarn ähnlich ist, wurde das nächste Ausgangspixel noch nicht gefunden. In diesem Fall stellt eine Einrichtung 712 den nächsten Nachbarn als aktuellen Nachbarn ein, und die Verarbeitung wird zur Auswahl des nächsten Nachbarn an die Einrichtung 708 weitergegeben. Anderenfalls stellt eine Einrichtung 714 fest, ob der nächste Nachbar dem aktuellen Ausgangspixel ähnlich ist. Ist dies der Fall, wählt eine Einrichtung 716 den nächsten Nachbarn als nächstes Ausgangspixel aus. Anderenfalls wählt eine Einrichtung 718 den aktuellen Nachbarn als nächstes Ausgangspixel aus. In beiden Fällen wird das nächste Ausgangspixel ausgewählt, und die Verarbeitung durch das Untersystem 608 zur Auswahl ist abgeschlossen.
  • Ein Beispiel für die Lokalisierung einer Ecke eines Strichcodesymbols
  • Die Verarbeitung sowohl des Untersystems 608 zur Auswahl eines Ausgangspixels als auch des Untersystems 600 zur Lokalisierung von zwei Ecken kann auch im Zusammenhang mit dem Beispiel gemäß 5 erläutert werden.
  • Bei dem Beispiel gemäß 5 empfängt das Untersystem 600 zur Lokalisierung von zwei Ecken das Pixel (13, 6) als ursprüngliches Ausgangspixel sowie die Suchrichtung Westen. Die Einrichtung 602 gemäß 6 wählt eine im Uhrzeigersinn ausgerichtete Reihenfolge aus, die Einrichtung 604 stellt als aktuelles Ausgangspixel das ursprüngliche Ausgangspixel (13, 6) ein, und die Einrichtung 606 beginnt die Liste der ausgewählten Ausgangspixel.
  • In 8 ist eine Tabelle dargestellt, die die ersten zwölf Verarbeitungszyklen des Untersystems 600 zur Lokalisierung für das Beispiel gemäß 5 darstellt. Nach dem Zyklus 1 enthält die von dem Untersystem 600 zur Lokalisierung gehaltene Liste der ausgewählten Ausgangspixel nur das ursprüngliche Ausgangspixel (13, 6).
  • Am Anfang des Zyklus 2 empfängt das Untersystem 608 zur Auswahl das aktuelle Ausgangspixel (13, 6), die Suchrichtung Westen und die ausgewählte, im Uhrzeigersinn ausgerichtete Reihenfolge als Eingang. Die Einrichtung 702 gemäß 7 stellt als aktuellen Nachbarn das Pixel (12, 6) ein, da es in der Suchrichtung Westen der Nachbar des aktuellen Ausgangspixels (13, 6) ist. Da der aktuelle Nachbar (12, 6) ein dunkles Pixel und das aktuelle Ausgangspixel (13, 6) ein helles Pixel ist, sind sie keine ähnlichen Pixel, und die Einrichtung 704 gibt die Verarbeitung an die Einrichtung 708 weiter.
  • Die Einrichtung 708 wählt von dem aktuellen Nachbarn (12, 6) durch eine Bewegung um das aktuelle Ausgangspixel (13, 6) im Uhrzeigersinn das Pixel (12, 7) als nächsten Nachbarn aus. Da der nächste Nachbar (12, 7) hell ist, ist der nächste Nachbar (12, 7) dem aktuellen Nachbarn (12, 6) nicht ähnlich, und die Einrichtung 710 gibt die Verarbeitung an die Einrichtung 714 weiter. Nachdem der nächste Nachbar (12, 7) dem aktuellen Ausgangspixel (13, 6) ähnlich ist, gibt die Einrichtung 714 die Verarbeitung an die Einrichtung 716 weiter, die den nächsten Nachbarn (12, 7) als nächstes Ausgangspixel auswählt. Die Verarbeitung wird dann zur Aktualisierung der Liste der ausgewählten Ausgangspixel durch Anfügen des nächsten Ausgangspixels (12, 7) an die Einrichtung 610 des Untersystems 600 zur Lokalisierung zurückgegeben, wie in 8 als zweiter Zyklus dargestellt. Die Einrichtung 612 wählt dann das nächste Ausgangspixel (12, 7) als aktuelles Ausgangspixel aus. Da die Liste der ausgewählten Ausgangspixel nur zwei Pixel lang ist, wobei dies kürzer als der bevorzugte ausgewählte Schwellenwert von fünf Pixeln ist, gibt die Einrichtung 614 die Verarbeitung an das Untersystem 608 zur Auswahl zurück.
  • Im Zyklus 3 verwendet die Einrichtung 702 des Untersystems 608 zur Auswahl das aktuelle Ausgangspixel (12, 7) und die Suchrichtung Westen zur Auswahl des aktuellen Nachbarn (11, 7). Nachdem die Einrichtung 704 festgestellt hat, daß der aktuelle Nachbar (11, 7) dem aktuellen Ausgangspixel (12, 7) nicht ähnlich ist, wählt die Einrichtung 708 durch eine Bewegung vom aktuellen Nachbarn (11, 7) im Uhrzeigersinn um das aktuelle Ausgangspixel (12, 7) den nächsten Nachbarn (11, 8) aus. Da der nächste Nachbar (11, 8) dem aktuellen Nachbarn (11, 7) ähnlich ist, gibt die Einrichtung 710 die Verarbeitung an die Einrichtung 712 weiter, die den nächsten Nachbarn (11, 8) als aktuellen Nachbarn einstellt. Die Verarbeitung wird dann an die Einrichtung 708 weitergegeben, die durch eine Bewegung von dem aktuellen Nachbarn (11, 8) im Uhrzeigersinn um das aktuelle Ausgangspixel (12, 7) den nächsten Nachbarn (12, 8) auswählt. Da der nächste Nachbar (12, 8) dem aktuellen Nachbarn (11, 8) nicht ähnlich ist, gibt die Einrichtung 710 die Verarbeitung nun an die Einrichtung 714 weiter, die wiederum feststellt, daß der nächste Nachbar (12, 8) dem aktuellen Ausgangspixel (12, 7) ähnlich ist. Die Einrichtung 716 stellt dann den nächsten Nachbarn (12, 8) als nächstes Ausgangspixel ein.
  • Die Einrichtung 610 aktualisiert dann durch Anfügen des nächsten Ausgangspixels (12, 8) die Liste der Ausgangspixel, wie in 8 im Zyklus 3 dargestellt, und die Einrichtung 612 stellt das nächste Ausgangspixel (12, 8) als aktuelles Ausgangspixel ein. Da die Liste der ausgewählten Ausgangspixel nach wie vor kürzer als der ausgewählte Schwellenwert von fünf Pixeln ist, gibt die Einrichtung 614 die Verarbeitung erneut an die Einrichtung 608 weiter.
  • Ähnlich wählt das Untersystem 608 zur Auswahl in den Zyklen 4 und 5 die Pixel (11, 9) und (10, 10) als die nächsten beiden Ausgangspixel aus, und die Einrichtung 610 aktualisiert die Liste der ausgewählten Ausgangspixel, wie in 8 dargestellt. Im Zyklus 5 stellt die Einrichtung 614 fest, daß die Liste der ausgewählten Ausgangspixel nicht mehr kürzer als der ausgewählte Schwellenwert von fünf Pixeln ist, und gibt die Verarbeitung an die Einrichtung 616 weiter, die durch Übertragen des Ursprungs des Vektors von dem ersten Ausgangspixel (13, 6) in der Liste zu dem letzten Ausgangspixel (10, 10) in der Liste den aktuellen Vektor (-3, 4) erzeugt, wie in 8 im Zyklus 5 dargestellt. Der aktuelle Vektor (-3, 4) zeigt, daß eine Bewegung von dem Pixel (13, 6) zu dem Pixel (10, 10) eine Bewegung um drei Pixel nach Westen und um vier Pixel nach Norden erfordert.
  • Da der aktuelle Vektor (-3, 4) der erste von dem Untersystem 600 zur Lokalisierung erzeugte Vektor für die ausgewählte, im Uhrzeigersinn ausgerichtete Reihenfolge ist, gibt die Einrichtung 618 die Verarbeitung an die Einrichtung 620 weiter, die den aktuellen Vektor (-3, 4) als Bezugsvektor speichert. Da der aktuelle Vektor (-3, 4) mit dem Bezugsvektor (-3, 4) identisch ist, berechnet die Einrichtung 622 eine Vektordifferenz mit einer Größe von 0, wie in 8 im Zyklus 5 dargestellt.
  • Da die Größe 0 kleiner als der ausgewählte dritte Schwellenwert ist, der bei dem Beispiel gemäß 5 2, 5 beträgt, gibt die Einrichtung 624 die Verarbeitung für den Zyklus 6 an das Untersystem 608 zur Auswahl weiter. Für Fachleute ist ersichtlich, daß der als dritter Schwellenwert ausgewählte Wert durch Überprüfen des Untersystems 600 unter Verwendung verschiedener Werte als dritter Schwellenwert zur Verarbeitung von bekannte Strichcodesymbole enthaltenden Bildern off-line empirisch bestimmt werden kann.
  • Im Zyklus 6 wählt das Untersystem 608 zur Auswahl unter Verwendung des aktuellen Ausgangspixels (10, 10) (9, 11) als nächstes Ausgangspixel aus, und die Einrichtung 610 aktualisiert die Liste der ausgewählten Ausgangspixel durch Löschen des ersten Ausgangspixels (13, 6) und Anfügen des nächsten Ausgangspixels (9, 11), wie in 8 dargestellt. Die Einrichtung 616 erzeugt einen aktuellen Vektor (-3, 4), die Einrichtung 622 berechnet die Größe 0, und die Einrichtung 624 gibt die Verarbeitung für den Zyklus 7 an das Untersystem 608 zur Auswahl zurück. Ähnlich wählt das Untersystem 608 zur Auswahl in den Zyklen 7, 8 und 9 jeweils die Pixel (9, 12), (8, 13) und (7, 14) als nächste drei Ausgangspixel aus, die Einrichtung 610 aktualisiert die Liste der ausgewählten Ausgangspixel, die Einrichtung 616 erzeugt aktuelle Vektoren (-3, 4), und die Einrichtung 624 gibt die Verarbeitung für den nächsten Zyklus an das Untersystem 608 zur Auswahl zurück.
  • Im Zyklus 10 stellt die Einrichtung 702 des Untersystems 608 zur Auswahl auf der Grundlage des aktuellen Ausgangspixels (7, 14) den westlichen Nachbarn (6, 14) als aktuellen Nachbarn ein. Da der aktuelle Nachbar (6, 14) hell ist, ist er dem aktuellen Ausgangspixel (7, 14) ähnlich, und die Einrichtung 704 gibt die Verarbeitung an die Einrichtung 706 weiter, die die ausgewählte Ausrichtung der Reihenfolge vorübergehend umkehrt. Da die ausgewählte Ausrichtung der Reihenfolge der Uhrzeigersinn war, wählt die Einrichtung 706 vorübergehend den Gegenuhrzeigersinn als Ausrichtung der Reihenfolge aus. Die Einrichtung 708 wählt dann von dem aktuellen Nachbarn (6, 14) durch eine Bewegung gegen den Uhrzeigersinn um das aktuelle Ausgangspixel (7, 14) den nächsten Nachbarn (6, 13) aus. Da der nächste Nachbar (6, 13) dunkel ist, ist er dem aktuellen Nachbarn (6, 14) nicht ähnlich, und die Einrichtung 710 gibt die Verarbeitung an die Einrichtung 714 weiter. Da der nächste Nachbar (6, 13) dem aktuellen Ausgangspixel (7, 14) ebenfalls nicht ähnlich ist, gibt die Einrichtung 714 die Verarbeitung an die Einrichtung 718 weiter, die den aktuellen Nachbarn (6, 14) als nächstes Ausgangspixel einstellt. Die Einrichtung 610 aktualisiert dann die Liste der ausgewählten Ausgangspixel, und die Einrichtung 616 erzeugt einen aktuellen Vektor (-3, 3), wie in 8 im Zyklus 10 dargestellt. In diesem Fall berechnet die Einrichtung 622 eine Größe von 1,0, die die Größe der Vektordifferenz zwischen dem aktuellen Vektor (-3, 3) und dem Bezugsvektor (-3, 4) repräsentiert. Die Einrichtung 624 gibt dann die Verarbeitung für den Zyklus 11 an das Untersystem 608 zur Auswahl zurück, da die Größe 1,0 kleiner als der ausgewählte dritte Schwellenwert von 2,5 ist.
  • Ähnlich wählt das Untersystem 608 zur Auswahl im Zyklus 11 ein nächstes Ausgangspixel (5, 13) aus, die Einrichtung 610 aktualisiert die Liste der ausgewählten Ausgangspixel, die Einrichtung 616 erzeugt aktuelle Vektoren (-4, 1), und die Einrichtung 622 berechnet eine Größe von 3,2, wie in 8 im Zyklus 11 dargestellt. Die Einrichtung 624 stellt fest, daß die Größe 3,2 nicht kleiner als der ausgewählte dritte Schwellenwert von 2, 5 ist, und gibt die Verarbeitung an die Einrichtung 626 weiter. Die Einrichtung 626 wählt das der erfaßten Ecke entsprechende Pixel aus. Um sicherzustellen, daß der von den vier durch das Untersystem 112 zur Lokalisierung erfaßten Ecken definierte Bereich das gesamte lokalisierte Strichcodesymbol enthält, wählt die Einrichtung 626 des Untersystems 600 zur Lokalisierung vorzugsweise ein Pixel außerhalb der tatsächlichen Ecke des äußersten Strichs des Anfangs- und Endzeichens als erfaßte Ecke aus. Bei dem Beispiel gemäß 5 kann die Einrichtung 626 durch eine Bewegung von dem letzten ausgewählten Ausgangspixel (5, 13) um zwei Pixel nach Norden und zwei Pixel nach Osten das Pixel (7,15) als dem Punkt 214 in 2 entsprechende erste Ecke auswählen.
  • Sind die Suchrichtung Westen und die ausgewählte Reihenfolge der Uhrzeigersinn, lokalisiert das Untersystem 600 zur Lokalisierung die nordöstliche Ecke eines Strichcodesymbols, und die Einrichtung 626 bewegt sich von dem letzten ausgewählten Ausgangspixel um zwei Pixel nach Norden und um zwei Pixel nach Osten, um die Auswahl eines Eckpixels sicherzustellen, mit dem das gesamte Strichcodesymbol eingeschlossen wird. Ähnlich lokalisiert das Untersystem 600 zur Lokalisierung, wenn die Suchrichtung Westen und die ausgewählte Reihenfolge der Gegenuhrzeigersinn sind, die südwestliche Ecke, und die Einrichtung 626 bewegt sich nach Süden und Osten. Sind die Suchrichtung Osten und die gewählte Reihenfolge der Uhrzeigersinn, lokalisiert das Untersystem 600 zur Lokalisierung die südwestliche Ecke, und die Einrichtung 626 bewegt sich nach Süden und Westen. Die Einrichtung 626 kann sich auch um andere Anzahl an Pixeln, einschließlich Null, in diese Richtungen bewegen.
  • Nach der Auswahl des ersten Eckpixels stellt die Einrichtung 628 fest, daß bislang nur ein Eckpixel ausgewählt wurde, und die Einrichtung 630 wählt als Ausrichtung der Reihenfolge den Gegenuhrzeigersinn aus. Das Untersystem 600 zur Lokalisierung beginnt im Zyklus 12 durch die Rückkehr zur Einrichtung 604, die das aktuelle Ausgangspixel auf das ursprüngliche Ausgangspixel (13, 6) zurücksetzt, und der Einrichtung 606, die die Liste der ausgewählten Ausgangspixel mit nur dem ursprünglichen Ausgangspixel (13, 6) erneut beginnt, den Prozeß der Lokalisierung der zweiten Ecke unter Verwendung einer gegen den Uhrzeigersinn ausgerichteten Reihenfolge, wie in 8 dargestellt. Das Untersystem 600 zur Lokalisierung setzt die Verarbeitung analog zu der zur Lokalisierung der ersten Ecke fort, bis die zweite Ecke lokalisiert ist, wobei die Einrichtung 628 zu diesem Zeitpunkt feststellt, daß beide Ecken lokalisiert wurden, und die Verarbeitung durch das Untersystem 600 zur Lokalisierung abgeschlossen ist.
  • Für Fachleute ist ersichtlich, daß Untersysteme zur Lokalisierung von Ecken auch zur Lokalisierung der Ecken von anderen Artefakten als Strichcodesymbolen in Pixelbildern verwendet werden können. Derartige Artefakte können auch eine andere Form als die eines Rechtecks mit rechtwinkligen Ecken aufweisen.
  • Die Decodierung von Barcodesymbolen
  • In 9 ist ein Ablaufdiagramm der von dem Untersystem 114 zum Decodieren von Strichcodesymbolen des Erfassungssystems 100 ausgeführten Verarbeitung zur Decodierung eines Strichcodesymbols. Lokalisiert das Untersystem 112 zur Lokalisierung von vier Ecken des Erfassungssystems 100 gemäß 1 sämtliche vier Ecken eines erfaßten Strichcodesymbols, decodiert das Untersystem 114 zum Decodieren das Symbol durch Bestimmung der Folge alphanumerischer Zeichen, die in dem Strichcodesymbol als Striche und Zwi schenräume codiert sind. Alphanumerische Zeichen können alle möglichen Zeichen sein und sind nicht nur auf die Zahlen und Buchstaben des englischen Alphabets beschränkt. Das Untersystem 114 zum Decodieren wählt eine Bezugslinie über das zufällig ausgerichtete Strichcodesymbol aus und decodiert das Symbol durch eine stufenweise Bewegung entlang der Bezugslinie.
  • Bei Symbolsprachen mit Prüfsummenzeichen, wie Code 128, wählt das Untersystem 114 zum Decodieren eine oder mehrere Wahlen von alphanumerischen Zeichen für jedes Symbolzeichen aus. Das Untersystem 114 zum Decodieren führt dann eine Prüfsummenanalyse an aus diesen Wahlen von Zeichen ausgewählten Sätzen von alphanumerischen Zeichen aus. Genügt ein Satz von Zeichen der Prüfsummenanalyse, wird der Zeichensatz als Ergebnis der Decodierung des Strichcodesymbols ausgewählt. Genügt keiner der Zeichensätze der Prüfsummenanalyse, wählt das Untersystem 114 zur Decodierung eine weitere Bezugszeile aus, für die der Prozeß der Decodierung und Überprüfung wiederholt wird. Das Untersystem 114 zum Decodieren fährt mit der Auswahl von Bezugszeilen fort, bis die Prüfsummenanalyse erfolgreich abgeschlossen ist oder bis eine vorgegebene Einstellungsbedingung auftritt. Die Einstellungsbedingung kann abhängig von den Anforderungen der besonderen Anwendung eine vorgegebene Auflösung zwischen Bezugszeilen, eine vorgegebene Anzahl an Bezugszeilen oder eine vorgegebene Verarbeitungsdauer sein.
  • Obwohl dies keine Ausführungsform der Erfindung ist, wählt das Untersystem 114 zum Decodieren bei Symbolsprachen, die nicht über Prüfsummenzeichen verfügen, die beste Wahl an alphanumerischen Zeichen für jedes Symbolzeichen aus. Jede dieser Wahlen weist eine entsprechende statistische Sicherheit auf. Ist basierend auf den statistischen Sicherheiten jede der Wahlen in dem Satz von besten Wahlen "gut genug", wählt das Untersystem 114 zur Decodierung den Satz als Ergebnis der Decodierung des Strichcodesymbols aus. Sind eine oder mehrere Wahlen nicht gut genug, wählt das Untersystem 114 zur Decodierung eine weitere Bezugszeile aus, für die der Prozeß des Decodierens wiederholt wird, wobei die besten Wahlen aus jeder Bezugslinie gespeichert werden. Die Auswahl von Bezugszeilen wird fortgesetzt, bis jede der Wahlen gut genug ist oder bis die vorgegebene Einstellungsbedingung auftritt.
  • In 10 ist eine grafische Darstellung eines ein Strichcodesymbol 1002 in verschlechterter Qualität enthaltenden Pixelbilds 1000 gezeigt. Das Strichcodesymbol 1002 ist ein Symbol in Code 128, in dem die Daten "CODE 128" codiert sind. Zusätzlich zu den acht Datenzeichen enthält das Strichcodesymbol 1002 ein Anfangszeichen, ein Endzeichen, das als den Endstrich enthaltend betrachtet wird, und ein Prüfsummenzeichen. Das Prüfsummenzeichen repräsentiert den Wert 84, der dem Ergebnis der geeigneten Prüfsummenberechnung des Code 128 an den acht Datenzeichen des Strichcodesymbols 1002 entspricht. Das Prüfsummenzeichen kann zur Überprüfung der Richtigkeit der Decodierung des Strichcodesymbols 1002 verwendet werden.
  • Das Strichcodesymbol 1002 weist in den Bereichen 1004, 1006 und 1008 eine verschlechterte Qualität auf. Eine verschlechterte Qualität kann Striche und Zwischenräume dünner oder dicker erscheinen lassen, als sie sein sollten. Derartige Abweichungen von der beabsichtigten Dicke können zu Fehlern bei der Decodierung des Strichcodesymbols 1002 entlang den Bezugszeilen führen, die durch die Bereiche mit verschlechterter Qualität verlaufen.
  • Gemäß 9 empfängt das Untersystem 114 zur Decodierung die von dem Untersystem 112 zur Lokalisierung der vier Ecken loka lisierten vier Ecken des Strichcodesymbols als Eingänge. Eine Einrichtung 902 wählt dann eine erste Bezugszeile über das Strichcodesymbol aus. Im allgemeinen verläuft eine Bezugszeile vorzugsweise senkrecht zu den Strichen und Zwischenräumen eines Strichcodesymbols durch das Strichcodesymbol. Daher beginnt eine Bezugszeile in einer ruhigen Zone und endet in der anderen ruhigen Zone des Strichcodesymbols. Die erste Bezugszeile kann die senkrechte Schnittlinie sein, auf die vorstehend im Zusammenhang mit den 2 und 4 Bezug genommen wurde und die durch die Mitte des Strichcodesymbols verläuft.
  • Bei dem Beispiel gemäß 10 empfängt das Untersystem 114 zum Decodieren als Eingänge die Ecken 1010, 1012, 1014 und 1016, die einen das Strichcodesymbol 1002 enthaltenden Bereich des Pixelbilds 1000 definieren. Die Einrichtung 902 wählt die Bezugslinie 1018 als erste Bezugszeile zur Decodierung des Strichcodesymbols 1002 aus. Die Bezugszeile 1018 kann die Linie durch die Punkte 1020 und 1012 sein, wobei der Punkt 1020 der Mittelpunkt zwischen den Ecken 1010 und 1012 an einem Ende des Strichcodesymbols 1002 und der Punkt 1022 der Mittelpunkt zwischen den Ecken 1014 und 1016 am anderen Ende des Strichcodesymbols 1002 ist.
  • Ein Untersystem 904 zur schrittweisen Analyse führt dann eine Unterpixelinterpolation des Strichcodesymbols 1012 entlang den zu der Bezugszeile 1018 gehörigen Suchschritten aus. Das Untersystem 904 zur schrittweisen Analyse und die Unterpixelinterpolation werden später in dieser Beschreibung im Zusammenhang mit den 11, 14 und 15 genauer beschrieben. Jedes Symbolzeichen des Strichcodesymbols 1002 ist ein Satz von Strichen und Zwischenräumen, der ein alphanumerisches Zeichen repräsentiert. Das Untersystem 904 zur schrittweisen Analyse wählt ein oder mehr alphanumeri sche Zeichen als Entsprechung jedes Symbolzeichens des Strichcodesymbols 1002 aus. Zudem weist das Untersystem 904 zur schrittweisen Analyse jedem ausgewählten alphanumerischen Zeichen für jedes Symbolzeichen eine statistische Sicherheit zu, die angibt, wie "sicher" das Untersystem 904 ist, daß das Symbolzeichen tatsächlich das ausgewählte alphanumerische Zeichen repräsentiert.
  • Unter Verwendung der Bezugszeile 1018 kann das Untersystem 904 zur schrittweisen Analyse beispielsweise feststellen, daß das erste Datenzeichen des Strichcodesymbols 1002 dem alphanumerischen Zeichen "C" zugeordnet werden sollte, wie in Tabelle I dargestellt.
  • Dieser Zeichenwahl wird dann eine bestimmte statistische Sicherheit zugewiesen. Das Untersystem 904 zur schrittweisen Analyse kann ebenso feststellen, daß dem zweiten Datenzeichen das alphanumerische Zeichen "0" zugeordnet werden sollte, dem eine eigene statistische Sicherheit zugewiesen wird.
  • Figure 00450001
    Tabelle I
  • Da das Strichcodesymbol 1002 in den Bereichen 1004 und 1006 eine verschlechterte Qualität aufweist, kann das Untersystem 904 zur schrittweisen Analyse unter Verwendung der Bezugslinie 1018 für jedes der anderen Datenzeichen eine oder mehrere Wahlen an alphanumerischen Zeichen erzeugen. Das Untersystem 904 zur schrittweisen Analyse kann beispielsweise eine erste oder beste Wahl "0" und eine zweitbeste Wahl "W" für das zweite Datenzeichen des Strichcodesymbols 1002 erzeugen, da die Bezugslinie 1018 bei dem zweiten Datenzeichen durch den Bereich 1004 mit der verschlechterten Qualität verläuft. Die relativen Werte der zugewiesenen statistischen Sicherheitsfaktoren können angeben, daß das Untersystem 904 zur schrittweisen Analyse "sicherer" ist, daß das zweite Datenzeichen tatsächlich das alphanumerische Zeichen "0" repräsentiert, als daß es tatsächlich das alphanumerische Zeichen "W" darstellt. Ähnlich kann das Untersystems 904 zur schrittweisen Analyse aufgrund der verfälschten Ergebnisse des Bereichs 1006 mit der verschlechterten Qualität jeweils die beste, zweitbeste und drittbeste Wahl "7", "L" und "E" für das vierte Datenzeichen des Strichcodesymbols 1002 erzeugen.
  • Wird die erste Bezugslinie ausgewählt, erzeugt die Einrichtung 906 eine Zeichentabelle der alphanumerischen Zeichen und der zugehörigen, von dem Untersystem zur schrittweisen Analyse zugewiesenen statistischen Sicherheiten. Jede Spalte der Zeichentabelle entspricht einem anderen Symbolzeichen, und jede Spalte enthält die jedem Symbolzeichen entsprechenden alphanumerischen Zeichen in der Reihenfolge von der höchsten statistischen Sicherheit bis zur niedrigsten statistischen Sicherheit, d. h. von der besten Wahl bis zur schlechtesten Wahl.
  • Nach der Erstellung der Zeichentabelle durch die Einrichtung 906 wählt die Einrichtung 908 einen Zeichensatz aus der Zeichentabelle aus. Anfangs wählt die Einrichtung 908 den Satz der Zeichen erster Wahl aus der Zeichentabelle aus. Jedes Zeichen in diesem Satz von Zeichen erster Wahl ist die beste bzw. die erste Wahl, d. h. das alphanumerische Zeichen mit der höchsten statistischen Sicherheit für jedes in der Zeichentabelle repräsentierte Symbolzeichen.
  • Die Einrichtung 910 führt dann eine Prüfsummenberechnung an dem ausgewählten Satz alphanumerischer Zeichen aus und vergleicht das Ergebnis mit dem Prüfsummenzeichen. Stellt die Einrichtung 910 fest, daß das Prüfsummenergebnis mit dem Prüfsummenzeichen übereinstimmt, ist das Strichcodesymbol decodiert, und die Verarbeitung des Untersystems 114 zur Decodierung ist abgeschlossen. Anderenfalls ist die Prüfsummenanalyse nicht erfolgreich verlaufen, und die Einrichtung 912 stellt fest, ob weitere Sätze von Zeichenwahlen zur Überprüfung in der Zeichentabelle vorhanden sind. Ist dies der Fall, wählt die Einrichtung 908 einen nächsten Zeichensatz zur Prüfsummenanalyse durch die Einrichtung 910 aus der Zeichentabelle aus.
  • Wie vorstehend beschrieben, kann jedes Symbolzeichen in der Zeichentabelle ein oder mehr zugeordnete alphanumerische Zeichen aufweisen. Das Untersystem 114 zur Decodierung kann weitere Sätze von alphanumerischen Zeichen, andere als den Zeichensatz erster Wahl, anhand des Prüfsummenzeichens überprüfen. Jeder dieser weiteren Zeichensätze mit Ausnahme eines Symbolzeichens, das durch eine seiner weiteren Wahlen repräsentiert wird, kann aus dem alphanumerischen Zeichen erster Wahl für jedes Symbolzeichen bestehen. Das Untersystem 114 zur Decodierung überprüft diese weiteren Zeichensätze, bis einer gefunden ist, der der Prüfsummenanalyse genügt.
  • Sind keine weiteren Zeichensätze zu überprüfen, stellt die Einrichtung 914 fest, ob weitere Bezugslinien auszuwählen sind. Abhängig von den Anforderungen der jeweiligen Anwendung kann entsprechend dem gewünschten Kriterium die Auswahl der Bezugslinien fortgesetzt werden, bis eine vorgegebene Auflösung zwischen den Bezugslinien erreicht ist, bis eine bestimmte Anzahl an Bezugslinien ausgewählt wurde oder bis eine bestimmte Verarbeitungszeit verstrichen ist. Zur Decodierung eines ausgewählten Strichcodesymbols können bis zu drei Bezugslinien ausgewählt werden. Sind weitere Bezugslinien vorhanden, wählt die Einrichtung 902 eine nächste Bezugslinie für eine weitere Unterpixelinterpolation durch das Untersystem 904 zur schrittweisen Analyse aus. Anderenfalls wurden sämtliche Bezugslinien ausgewählt, und das Untersystem 902 zur Decodierung scheitert an der Decodierung des Strichcodesymbols.
  • Bei dem Beispiel gemäß 10 kann die Tabelle I die von der Einrichtung 906 unter Verwendung der Bezugslinie 1018 erzeugten Zeichenwahlen repräsentierten. Die Einrichtung 908 wählt zunächst den dem Zeichensatz ("C", "0", "D", "7", "Leerzeichen" "1", "2", "8", "84") entsprechenden Satz von Zeichen erster Wahl aus. Die Einrichtung 910 führt dann eine Prüfsummenanalyse an dem ausgewählten Zeichensatz aus. Da das Prüfsummenergebnis der Einrichtung 910 nicht dem Prüfsummenzeichen "84" entspricht, ist die Prüfsummenanalyse nicht erfolgreich. Die Einrichtung 912 bestimmt dann, ob die Zeichentabelle weitere Zeichensätze enthält. Scheitert die Prüfsummenanalyse an dem Satz der Zeichen erster Wahl, werden von dem Untersystem 114 zur Decodierung ausgewählte weitere Zeichensätze überprüft.
  • Nachdem die Prüfsummenanalyse bei dem Zeichensatz erster Wahl gescheitert ist, stellt die Einrichtung 912 fest, daß weitere Zeichensätze in der Zeichentabelle vorhanden sind, und die Einrichtung 908 wählt einen weiteren Zeichensatz aus der Zeichentabelle aus. Bei dem Beispiel gemäß Tabelle I kann die Einrichtung 908 ("C", "W", "D", "7", Leerzeichen, " 1", "2", "8", "84") als nächsten zu überprüfenden Zeichensatz auswählen. Dieser Satz repräsentiert die erste Wahl für jedes Symbolzeichen mit Ausnahme des Datenzeichens Nr. 2, für das die zweite Wahl ausgewählt wird. Die Einrichtung 910 führt die Prüfsummenberechnung an diesem Zeichensatz aus und stellt fest, daß auch bei ihm die Prüfsummenanalyse scheitert. Erneut stellt die Einrichtung 912 fest, daß der ausgewählte Zeichensatz nicht der letzte Zeichensatz ist, und die Einrichtung 908 kann ("C", "0", "D", "L", Leerzeichen, "1", "2", "8", "84") als nächsten Zeichensatz auswählen. Bei diesem Zeichensatz scheitert die Prüfsummenanalyse der Einrichtung 910 ebenfalls, und darauf wird von der Einrichtung 908 als nächster Zeichensatz ("C", "0", "D", "E", Leerzeichen, "1", "2", "8", "84") ausgewählt.
  • Da ("C", "0", "D", "E", Leerzeichen, "1", "2", "8", "84") der korrekte Zeichensatz ist, genügt er der Prüfsummenanalyse der Einrichtung 910, d. h. das Ergebnis der an den Datenzeichen dieses Satzes von Zeichen ausgeführten Prüfsummenberechnung ist "84", der Wert des Prüfsummenzeichens. Zu diesem Zeitpunkt ist das Strichcodesymbol 1002 decodiert, und die Verarbeitung des Untersystems 114 zur Decodierung ist abgeschlossen. Hätte sich jedoch herausgestellt, daß der Bereich 1006 aus irgendeinem Grund von derart verschlechterter Qualität war, daß für die Bezugslinie 1018 keiner der von der Einrichtung 908 ausgewählten Zeichensätze der Prüfsummenanalyse genügt hätte, hätte die Einrichtung 914 festgestellt, ob weitere Bezugslinien zur Verwendung zur Decodierung des Strichcodesymbols 1002 vorhanden sind. Die Anzahl der zu verwendenden Bezugslinien kann durch die Verarbeitungsanforderungen der besonderen Anwendung bestimmt werden. Bei einer Ausführungsform können bis zu 20 Bezugslinien ausgewählt werden.
  • Nachdem die Einrichtung 914 festgestellt hat, daß die Bezugslinie 1018 nicht die letzte auszuwählende Bezugslinie ist, kann die Einrichtung 902 die nächste Bezugslinie 1024 als nächste Bezugslinie auswählen, wobei die Bezugslinie 1024 vorzugsweise die Linie in der Mitte zwischen der Bezugslinie 1018 und der durch die Ecken 1010 und 1016 gegebenen Linie ist. Das Untersystem 904 zur schrittweisen Analyse führt dann durch eine schrittweise Bewegung entlang der Bezugslinie 1024 eine Decodierung aus. Wie zuvor kann diese Decodierung ein oder mehr alphanumerische Zeichen und zugehörige statistische Sicherheitsfaktoren für jedes Symbolzeichen in dem Strichcodesymbol 1002 ergeben. Die Einrichtung 906 aktualisiert dann die Zeichentabelle unter Verwendung der Bezugslinie 1024 und der zuvor für die Bezugslinie 1018 erzeugten Ergebnisse.
  • Wie später in dieser Beschreibung im Zusammenhang mit 11 genauer beschrieben, sind die statistischen Sicherheiten bei einer bevorzugten Ausführungsform Abstandsmessungen, die Abweichungen von idealen Zeichen wiedergeben. Als solche impliziert ein kleiner statistischer Sicherheitsfaktor eine kleinere Abweichung von einem idealen alphanumerischen Zeichen und ein höheres Niveau an Sicherheit, daß das alphanumerische Zeichen das korrekte Zeichen ist. Bei einer bevorzugten Ausführungsform aktualisiert die Einrichtung 906 die Zeichentabelle durch Erzeugung eines effektiven statistischen Sicherheitsfaktors R für jede alphanumerische Wahl entsprechend der Gleichung:
    Figure 00500001

    wobei Ri die statistischen Sicherheitsfaktorenen für die alphanumerische Wahl bei der Verwendung verschiedener Bezugslinien sind. Die Zeichentabelle wird dann durch Anordnen der Wahlen entsprechend ihren effektiven statistischen Sicherheitsfaktoren aktualisiert.
  • Es wird beispielsweise davon ausgegangen, daß unter Verwendung der ersten Bezugslinie für eines der Symbolzeichen in einem Strichcodesymbol zwei alphanumerische Wahlen erzeugt werden, nämlich der Buchstabe "A" mit einer statistischen Sicherheit von 0, 5 und der Buchstabe "B" mit einer statistischen Sicherheit von 0,8. Nach der ersten Bezugslinie ist "A" die erste Wahl, und "B" ist die zweite Wahl, da "A" einen kleineren statistischen Sicherheitsfaktor aufweist. Es wird ferner davon ausgegangen, daß die zweite Bezugslinie zwei weitere Wahlen für das gleiche Symbolzeichen ergibt, nämlich "B" mit einer statistischen Sicherheit von 0,8 und "C" mit einer statistischen Sicherheit von 0,6. In diesem Fall aktualisiert die Einrichtung 906 für dieses Symbolzeichen die Zeichentabelle, indem "A" mit einer statistischen Sicherheit von 0,5 beibehalten, "C" mit einer statistischen Sicherheit von 0,6 hinzugefügt und die statistische Sicherheit R für "B" gemäß der Gleichung (1) auf 0,4 aktualisiert werden, wobei gilt:
    Figure 00510001

    Da nun "B" die kleinste effektive statistische Sicherheit aufweist, wird es zur ersten Wahl in der Zeichentabelle, gefolgt von "A" und "C". Für Fachleute ist ersichtlich, daß die Zeichentabelle unter Verwendung alternativer Verfahren aktualisiert werden kann.
  • Die aktuelle Zeichentabelle wird dann durch die Einrichtungen 908, 910 und 912 verarbeitet, wie vorstehend beschrieben. Genügt keiner der von der Einrichtung 908 ausgewählten Zeichensätze aus der aktualisierten Zeichentabelle der Prüfsummenanalyse, kann eine weitere Bezugslinie 1026 ausgewählt und die Prozedur der stufenwei sen Analyse, Aktualisierung und Prüfsummenanalyse wiederholt werden.
  • Das Prüfsummenzeichen in der Zeichentabelle kann lediglich durch ein alphanumerisches Zeichen erster Wahl repräsentiert werden. Alternativ kann das Prüfsummenzeichen zusätzlich zu der ersten Wahl eine oder mehrere Wahlen aufweisen. In derartigen Fällen kann das Prüfsummenzeichen bei der Erzeugung von Zeichensätzen für die Prüfsummenanalyse wie jedes andere Zeichen behandelt werden.
  • Die schrittweise Analyse einer Bezugszeile zur Decodierung eines Strichcodesymbols
  • In 11 ist ein Ablaufdiagramm der von dem Untersystem 904 zur schrittweisen Analyse des Untersystems 114 zur Decodierung von Strichcodesymbolen ausgeführten Verarbeitung zur schrittweisen Analyse einer ausgewählten Bezugslinie und zur Decodierung eines Strichcodesymbols gezeigt. Da die von dem Erfassungssystem 100 zu erfassenden und zu decodierenden Strichcodesymbole in bezug auf die Zeilen und Spalten der Pixel in dem Pixelbild zufällig ausgerichtet sein können, sind die von dem Untersystem 114 zur Decodierung ausgewählten Bezugszeilen typischer Weise nicht mit den Pixelzeilen oder -spalten ausgerichtet.
  • Zum Erhalt des Informationsgehalts der Pixelbilder decodiert das Untersystem 114 zur Decodierung Strichcodesymbole durch Ausführen einer Unterpixelinterpolation entlang einer Folge von Suchschritten. Jeder Suchschritt ist ein Abschnitt einer Pixelzeile oder - spalte, der am Schnittpunkt der Pixelzeile oder -spalte und der ausgewählten Bezugslinie beginnt. Wenn die Bezugslinie in bezug auf die Pixelzeilen des Pixelbilds mit einer Winkelgröße von weniger als 45 Grad ausgerichtet ist, sind die Suchschritte Abschnitte von Pixelzeilen. Anderenfalls sind die Suchschritte Abschnitte von Pixelspalten.
  • In 12 ist eine grafische Darstellung des die ruhige Zone 1204 und einen Abschnitt des weder mit den Pixelzeilen oder -spalten des Pixelbilds 1200 ausgerichteten Strichcodesymbols 1202 enthaltenden Pixelbilds 1200 gezeigt. Das Strichcodesymbol 1202 enthält Striche 1206 bis 1214 und Zwischenräume 1216 bis 1224. 12 zeigt auch die Bezugslinie 1226 und die Suchschritte 1228 bis 1242. Die Bezugslinie 1226 ist analog zu den Bezugslinien 1018, 1024 und 1026 in 10.
  • In 13 ist eine grafische Darstellung der Pixelintensitätsniveaus von elf Pixeln in dem Suchschritt 1228 des Pixelbilds 1200 gezeigt. Jedes Pixel entlang dem Suchschritt 1228 weist ein entsprechendes Intensitätsniveau auf, das seine Helligkeit angibt. Zur Vereinfachung der Erläuterung wird das Untersystem 904 im Zusammenhang mit dem Beispiel gemäß den 12 und 13 beschrieben.
  • Das Untersystem 904 zur schrittweisen Analyse gemäß 11 beginnt mit einer Einrichtung 1102, die den ersten Suchschritt und den Ausgangspunkt für den ersten Suchschritt auswählt. Der erste Suchschritt ist vorzugsweise eine Zeile oder Spalte von Pixeln, die die Bezugslinie am Zustandsübergang zwischen einer ruhigen Zone und einem Anfangs- oder Endzeichen des erfaßten Strichcodesymbols schneidet. Der Ausgangspunkt ist vorzugsweise das Pixel, das dem Schnittpunkt entspricht. Gemäß 10 kann der Punkt 1020 der Ausgangspunkt des ersten Suchschritts sein, wenn die Bezugslinie 1018 zur Decodierung des Strichcodesymbols 1002 verwendet wird. Ähnlich kann gemäß 12 der Punkt 1244 der Ausgangspunkt des ersten Suchschritts 1228 sein, wenn die Bezugslinie 1226 zur Deco dierung des Strichcodesymbols 1202 verwendet wird. Der Suchschritt 1228 bildet einen Teil der Pixelzeile, die die Bezugslinie 1226 am Punkt 1244 schneidet.
  • Nach der Auswahl des Ausgangspunkts für den ersten Suchschritt durch die Einrichtung 1102 führt eine Einrichtung 1104 zur Bestimmung eines Signalenergiewerts, der die Breite des ersten Strichs des Strichcodesymbols repräsentiert, eine Unterpixelinterpolation entlang dem ersten Suchschritt aus. Bei dem Beispiel gemäß 12 führt die Einrichtung 1104 beispielsweise zur Bestimmung eines Signalenergiewerts für den Strich 1206 des Strichcodesymbols 1202 eine Unterpixelinterpolation entlang dem Suchschritt 1228 aus. Je höher der Signalenergiewert ist, desto breiter ist das Symbolelement. Die Unterpixelinterpolation wird später in dieser Beschreibung im Zusammenhang mit den 14 und 15 weiter beschrieben.
  • Eine Einrichtung 1106 stellt den aktuellen Suchschritt als ersten Suchschritt ein. Eine Einrichtung 1108 führt dann eine Unterpixelinterpolation für ein weiteres Element entlang dem aktuellen Suchschritt aus, wobei Elemente durch die Einrichtung 1108 in der Reihenfolge analysiert werden, in der sie in dem Strichcodesymbol erscheinen. Eine Einrichtung 1110 stellt dann fest, ob eine Unterpixelinterpolation für das nächste Element entlang dem aktuellen Suchschritt ausgeführt werden soll oder ob ein neuer aktueller Suchschritt ausgewählt werden soll. Ein neuer aktueller Suchschritt wird ausgewählt, wenn das als vorletztes analysierte Element breit genug ist, um von ihm aus eine Projektion vorzunehmen. War beispielsweise das zuletzt analysierte Element ein Zwischenraum, wird zur Analyse des Strichs, der unmittelbar auf den Zwischenraum folgt, ein neuer aktueller Suchschritt ausgewählt, wenn der Strich, der unmittelbar vor diesem Zwischenraum liegt, breit genug ist, daß von ihm aus eine Projektion vorgenommen werden kann.
  • Um zu dieser Feststellung zu gelangen, vergleicht die Einrichtung 1110 den Signalenergiewert des vorhergehenden Symbolelements mit einem vierten Schwellenwert. Der vierte Schwellenwert entspricht vorzugsweise mindestens dem Doppelten der Breite des schmalsten Strichcodesymbolelements. Stellt die Einrichtung 1110 fest, daß der Signalenergiewert des vorletzten analysierten Elements größer als der vierte Schwellenwert ist, wählt die Einrichtung 1112 durch eine Projektion von der Mitte des vorletzten analysierten Elements zur Bezugslinie den Ausgangspunkt für einen neuen aktuellen Suchschritt aus. Anderenfalls wählt die Einrichtung 1114 als Ausgangspunkt entlang dem aktuellen Suchschritt die Mitte des vorletzten analysierten Elements aus.
  • Nach der Auswahl des Ausgangspunkts entweder durch die Einrichtung 1112 oder 1114 stellt eine Einrichtung 1116 durch Überprüfen, ob die ruhige Zone erreicht ist, fest, ob die stufenweise Analyse entlang der Bezugslinie abgeschlossen ist. Ist dies der Fall, erzeugt ein Untersystem 1118 zur Bestimmung von Zeichen die Wahlen an alphanumerischen Zeichen und die zu jedem Symbolzeichen des Strichcodesymbols gehörigen statistischen Sicherheitsfaktoren. Zu diesem Zeitpunkt ist die Verarbeitung durch das Untersystem 904 zur schrittweisen Analyse abgeschlossen. Das Untersystem 1118 zur Bestimmung von Zeichen wird später in dieser Beschreibung im Zusammenhang mit 16 weiter beschrieben.
  • Bei dem Beispiel gemäß 12 kann die Einrichtung 1110 feststellen, daß der Signalenergiewert für den Strich 1206 größer als der vierte Schwellenwert ist. Die Einrichtung 1112 kann dann durch eine Projektion vom Punkt 1248 des Suchschritts 1228 auf die Bezugsli nie 1226 einen Ausgangspunkt 1246 des Suchschritts 1230 als Ausgangspunkt für den neuen aktuellen Suchschritt auswählen. Weisen die Strichcodesymbolelemente beispielsweise eine Mindestbreite von 0,015 Zoll auf, kann der vierte Schwellenwert 0,030 Zoll betragen. Die Projektion von dem Suchschritt 1228 auf die Bezugslinie 1226 ist vorzugsweise senkrecht zu der Bezugslinie 1226. Wenn die Bezugslinie 1226 durch eine Steigung k und eine Abfangstelle n gekennzeichnet ist und der Mittelpunkt 1248 durch einen Punkt (x1, y1) repräsentiert wird, ist die Projektionslinie vom Mittelpunkt 1248 durch eine Steigung k1 und eine Abfangstelle n1 gekennzeichnet, wobei gilt: k1 = – 1/k, .. . (3)
    und n1 = y1 – k1x1... (4) .
  • Der Ausgangspunkt 1246 kann durch den Punkt (x2, y2) repräsentiert werden, wobei gilt:
    Figure 00560001

    und y2 = k1x2 + n1... (6).
  • Nachdem die Einrichtung 1116 festgestellt hat, daß die ruhige Zone noch nicht erreicht ist, führt die Einrichtung 1108 entlang dem Suchschritt 1230 eine Unterpixelinterpolation für den Strich 1208 aus.
  • Anderenfalls, wenn der Signalenergiewert für den Strich 1206 nicht größer als der vierte Schwellenwert ist, stellt die Einrichtung 1114 den Ausgangspunkt für die Unterpixelinterpolation entlang dem aktuellen Suchschritt 1228 auf die Mitte des Strichs 1206 ein. Nach dem die Einrichtung 1116 festgestellt hat, daß die ruhige Zone noch nicht erreicht ist, berechnet die Einrichtung 1108 entlang dem aktuellen Suchschritt 1228 den Signalenergiewert für den Strich 1208. Die Unterpixelinterpolation der nachfolgenden Symbolelemente wird entlang dem Suchschritt 1228 fortgesetzt, bis das vorletzte analysierte Element ein Strich oder Zwischenraum mit einer ausreichenden Breite ist, wobei in diesem Fall die Einrichtung 1112 zur Auswahl des Ausgangspunkts des neuen aktuellen Suchschritts eine Projektion von der Mitte dieses Elements auf die Bezugslinie 1226 vornimmt. Auf diese Weise bestimmt das Untersystem 904 zur schrittweisen Analyse die Signalenergiewerte für jedes Symbolelement des Strichcodesymbols 1202.
  • Die Unterpixelinterpolation von Strichcodesymbolelementen
  • In den 14 und 15 sind Ablaufdiagramme der von Untersystemen 1400 und 1500 zur Unterpixelinterpolation ausgeführten Verarbeitungen zur jeweiligen Berechnung von Signalenergiewerten für Striche und Zwischenräume gezeigt. Ist das zu analysierende Strichcodesymbolelement ein Strich, implementiert die Einrichtung 1108 des Untersystems 904 zur schrittweisen Analyse das Untersystem 1400 zur Unterpixelinterpolation zur Bestimmung eines Signalenergiewerts für den Bereich von der Mitte des Zwischenraums, der unmittelbar vor dem Strich angeordnet ist, zur Mitte des Zwischenraums, der unmittelbar auf den Strich folgt. Ähnlich implementiert die Einrichtung 1108, wenn das zu analysierende Symbolelement ein Zwischenraum ist, das Untersystem 1500, um einen Signalenergiewert für den Bereich von der Mitte des Strichs unmittelbar vor dem Zwischenraum zur Mitte des Strichs unmittelbar hinter dem Zwischenraum zu bestimmen.
  • Ist ein Strich zu analysieren, lokalisiert eine Einrichtung 1402 des Untersystems 1400 zur Unterpixelinterpolation einen der Mitte des Zwischenraums unmittelbar vor dem zu analysierenden Strich entsprechenden ersten Spitzenwert. Bei der Analyse eines Strichs, der nicht der erste Strich eines Strichcodesymbols ist, repräsentiert ein Spitzenwert im allgemeinen ein in bezug auf die daneben liegenden Pixel maximales Pixelintensitätsniveau. Bei der Analyse des ersten Strichs ist der erste Spitzenwert vorzugsweise ein helles Pixel nahe dem Ende der ruhigen Zone, die an den ersten Strich angrenzt. Die Einrichtung 1404 lokalisiert dann einen zweiten Spitzenwert, der der Mitte des Zwischenraums entspricht, der unmittelbar auf den zu analysierenden Strich folgt. Die beiden Spitzenwerte sind nebeneinander liegende kritische Punkte entlang einer eindimensionalen Signalkurve, die einen Abschnitt des aktuellen Suchschritts repräsentiert, dessen Mitte auf dem zu analysierenden Strich liegt.
  • Die Einrichtung 1406 berechnet dann durch numerische Integration unter Verwendung der Intensitätsniveaus der Pixel den Bereich über der Graustufen-Signalkurve zwischen den zwei Spitzenwerten. Dieser Bereich ist der Signalenergiewert des analysierten Strichs. Bei der Ausführung dieser Integrationsberechnung verwendet die Einrichtung 1406 vorzugsweise das maximale Pixelintensitätsniveau aus dem von der Einrichtung 102 des Erfassungssystems 100 gemäß 1 erzeugten Histogramm als Obergrenze zur Berechnung des Bereichs oberhalb der Kurve. Im allgemeinen ist der Signalenergiewert bi für einen Strich durch
    Figure 00580001

    gegeben, wobei Imax das maximale Pixelintensitätsniveau aus dem Histogramm, Ipeak#1 das Pixelintensitätsniveau des dem ersten Spit zenwert entsprechenden Pixels, Ipeak#2 das Pixelintensitätsniveau des dem zweiten Spitzenwert entsprechenden Pixels und Ip die Pixelintensitätsniveaus der Pixel sind, die entlang dem aktuellen Suchschritt zwischen dem ersten und dem zweiten Spitzenwert liegen.
  • Bei dem Beispiel gemäß den 12 und 13 implementiert das Untersystem 904 zur schrittweisen Analyse zur Bestimmung des Signalenergiewerts für den Strich 1206 entlang dem Suchschritt 1228 das Untersystem 1400 zur Unterpixelinterpolation. Da der Strich 1206 der erste Strich in dem Strichcodesymbol 1202 ist, wählt die Einrichtung 1402 vorzugsweise ein Pixel in der Nähe des Endes der ruhigen Zone 1204, beispielsweise das Pixel 2 gemäß 13, als ersten Spitzenwert aus. Die Einrichtung 1404 lokalisiert dann den zweiten Spitzenwert, der sich in der Mitte des Zwischenraums 1216 unmittelbar hinter dem Strich 1206 befindet. Die Einrichtung 1404 kann das Pixel 7 gemäß 13 als zweiten Spitzenwert auswählen. Die Einrichtung 1406 berechnet dann unter Verwendung der Gleichung (7) den Signalenergiewert für den Strich 1206. Es wird beispielsweise davon ausgegangen, daß das Histogramm für das das Strichcodesymbol 1202 enthaltende Pixelbild angibt, daß das maximale Pixelintensitätsniveau Imax 240 ist. Der Signalenergiewert bi für den Strich 1206 von der Einrichtung 1406 ist dann durch
    Figure 00590001

    gegeben.
  • Ähnlich lokalisiert, wenn ein Zwischenraum analysiert werden soll, die Einrichtung 1502 des Untersystems 1500 zur Unterpixelinterpolation einen ersten Tiefstwert, der der Mitte des Strichs unmittelbar vor dem zu analysierenden Zwischenraums entspricht. Ein Tiefstwert repräsentiert im allgemeinen ein in Bezug auf die daneben liegenden Pixel minimales Pixelintensitätsniveau. Die Einrichtung 1504 lokalisiert dann einen zweiten Tiefstwert, der der Mitte des Strichs unmittelbar nach dem zu analysierenden Zwischenraum entspricht. Die beiden Tiefstwerte sind nebeneinander liegende kritische Punkte auf einer eindimensionalen Signalkurve, die einen Abschnitt des aktuellen Suchschritts repräsentiert, dessen Mitte in dem zu analysierenden Zwischenraum liegt.
  • Die Einrichtung 1506 berechnet dann durch numerische Integration unter Verwendung der Pixelintensitätsniveaus den Bereich unter der Graustufen-Signalkurve zwischen den beiden Tiefstwerten. Dieser Bereich ist der Signalenergiewert des analysierten Zwischenraums. Bei der Ausführung dieser Integrationsberechnung verwendet die Einrichtung 1506 vorzugsweise das minimale Pixelintensitätsniveau aus dem von der Einrichtung 102 des Erfassungssystems 100 gemäß 1 erzeugten Histogramm als Untergrenze zur Berechnung des Bereichs unter der Kurve. Im allgemeinen ist der Signalenergiewert si für einen Zwischenraum durch
    Figure 00600001

    gegeben, wobei Imin das minimale Pixelintensitätsniveau aus dem Histogramm, Ivalley#1 das Pixelintensitätsniveau des dem ersten Tiefstwert entsprechenden Pixels, Ivalley#2 das Pixelintensitätsniveau des dem zweiten Tiefstwert entsprechenden Pixels und IP die Pixelintensitätsniveaus der entlang dem aktuellen Suchschritt zwischen dem ersten und dem zweiten Tiefstwert liegenden Pixel sind.
  • Bei dem Beispiel gemäß den 12 und 13 implementiert das Untersystem 904 zur schrittweisen Analyse entlang dem Suchschritt 1228 das Untersystem 1500 zur Unterpixelinterpolation zur Bestimmung des Signalenergiewerts für den Zwischenraum 1216. Die Einrichtung 1502 lokalisiert den ersten Tiefstwert, der in der Mitte des Strichs 1206 unmittelbar vor dem Zwischenraum 1216 liegt. Die Einrichtung 1502 kann das Pixel 4 gemäß 13 als ersten Tiefstwert auswählen. Die Einrichtung 1504 lokalisiert dann den zweiten Tiefstwert, der in der Mitte des Strichs 1208 unmittelbar hinter dem Zwischenraum 1216 liegt. Die Einrichtung 1504 kann als diesen zweiten Tiefstwert das Pixel 9 in 13 auswählen. Die Einrichtung 1506 berechnet dann unter Verwendung der Gleichung (9) den Signalenergiewert für den Zwischenraum 1216. Es wird beispielsweise davon ausgegangen, daß das Histogramm für das das Strichcodesymbol 1202 enthaltende Pixelbild angibt, daß das minimale Pixelintensitätsniveau Imin 50 beträgt. Der Signalenergiewert si für den Zwischenraum 1216 von der Einrichtung 1506 ist dann durch
    Figure 00610001
    gegeben.
  • Die Bestimmung von Zeichenwahlen anhand der Ergebnisse der Unterpixelinterpolation
  • Nach der Ausführung der Unterpixelinterpolation für sämtliche Symbolelemente des erfaßten Strichcodesymbols bestimmt das Untersystem 1118 des Untersystems 904 zur schrittweisen Analyse die Wahlen an alphanumerischen Zeichen für jedes Symbolzeichen. Die Unterpixelinterpolation erzeugt einen Signalenergiewert für jeden Strich und jeden Zwischenraum des erfaßten Strichcodesymbols. Kombinationen von Strichen und Zwischenräumen in dem Strichcodesymbol entsprechen Symbolzeichen. Das Untersystem 1118 zur Bestimmung von Zeichen verwendet die Signalenergiewerte zur Bestimmung einer oder mehrerer Wahlen von alphanumerischen Zeichen für jedes der Symbolzeichen. Das Untersystem 1118 berechnet auch eine statistische Sicherheit für jede Wahl von alphanumerischen Zeichen. Die Zeichenwahlen und die statistischen Sicherheiten werden dann von dem Untersystem 114 zur Decodierung zur Erzeugung und Aktualisierung der bei der vorstehend beschriebenen Prüfsummenanalyse verwendeten Zeichentabelle verwendet.
  • Jede Strichcodesymbolsprache weist ein besonderes Format für die Codierung alphanumerischer Zeichen durch Striche und Zwischenräume auf. In dieser Beschreibung wird das Untersystem 1118 im Zusammenhang mit der Decodierung von Strichcodesymbolen der Symbolsprache Code 128 beschrieben, obwohl für Fachleute ersichtlich ist, daß eine analoge Verarbeitung zur Decodierung jeder bekannten Symbolsprache verwendet werden kann. In der Symbolsprache Code 128 wird jedes alphanumerische Zeichen durch ein Symbolzeichen mit drei Strichen und drei Zwischenräumen repräsentiert. Die Breite jedes Symbolzeichens beträgt elf Module, wobei jedes Symbolelement (Strich oder Zwischenraum) eine natürliche Zahl von Modulen breit ist und die Mindestbreite eines Symbolelements ein Modul beträgt. Zudem ergibt die Summe der Breiten der drei Striche stets eine gerade Zahl von Modulen, wogegen die Summe der Bereiten der drei Zwischenräume stets eine ungerade Anzahl an Modulen ergibt. Das Untersystem 1118 zur Bestimmung von Zeichen erzeugt eine oder mehrere Wahlen von alphanumerischen Zeichen für jedes Symbolzeichen aus drei Strichen und drei Zwischenräumen.
  • In 16 ist eine grafische Darstellung eines aus drei Strichen 1602, 1604 und 1606 und drei Zwischenräumen 1608, 1610 und 1612 bestehenden Strichcodesymbolzeichens 1600 gezeigt. Die Brei ten der Symbolelemente des Symbolzeichens 1600 können durch Signalenergiewerte b1, b2, b3 für die drei Striche und s1, s2, s3 für die drei Zwischenräume repräsentiert sein. Die Signalenergiewerte werden durch eine von dem Untersystem 114 zur Decodierung ausgeführte Unterpixelinterpolation erzeugt. Das Untersystem 1118 zur Bestimmung der Zeichen bestimmt einen Wert X für ein Modul, der einem Modul des Symbolzeichens 1600 entspricht, wobei
    Figure 00630001

    gilt. Das Untersystem 1118 bildet dann anhand der von den Untersystem 114 zur Decodierung erzeugten Signalenergiewerte und des Werts X für ein Modul vier gemessene Breiten t1, t2, t3, t4, wobei gilt:
    Figure 00630002
  • Jede Breite ti entspricht der Breite von der Kante eines Symbolelements zur Kante des nächsten Symbolelements der gleichen Art entlang dem Symbolzeichen 1600. Die Breite t1 entspricht beispielsweise der Anzahl der Module von der Vorderkante des Strichs 1602 zur Vorderkante des nächsten Strichs, d. h. des Strichs 1604. Ähnlich entspricht die Breite t2 der Anzahl der Module von der Vorderkante des Zwischenraums 1608 zur Vorderkante des nächsten Zwischenraums, nämlich des Zwischenraums 1610. Da die Breite der Striche und Zwischenräume eine natürliche Zahl ergibt, sind die Breiten t1 idealer Weise ganze Zahlen von 2 bis 7. In der Praxis kann jedoch ein Rauschen Abweichungen von diesen idealen Breiten verursachen.
  • Das Untersystem 1118 vergleicht jede gemessene Breite ti mit den idealen Breiten, um den gemessenen Breiten eine oder mehrere ideale Breiten und Abweichungen von den idealen Breiten zuzuweisen. Eine ideale Breite von 2,0 kann beispielsweise gemessenen Breiten ti von 1,3 bis 2,7 zugeordnet werden. Ähnlich kann gemessenen Breiten ti von 2,3 bis 3,7 eine ideale Breite von 3,0 zugeordnet werden. Einigen gemessenen Breiten kann mehr als eine ideale Breite zugeordnet werden; einer gemessenen Breite von 2,5 würde beispielsweise sowohl die ideale Breite 2,0 als auch die ideale Breite 3,0 zugeordnet werden. Für Fachleute ist ersichtlich, daß diese Bereiche durch Überprüfen verschiedener Bereiche an bekannten Strichcodesymbolen empirisch ausgewählt werden können.
  • Es wird davon ausgegangen, daß der durch Unterpixelinterpolation an dem Zeichensymbol 1600 gemäß 16 abgeleitete Satz der gemessenen Breiten {t1, t2, t3, t4} {2,45, 5,2, 4,9, 2,9} ist. Das Untersystem 1118 kann den idealen Satz {2,0, 5,0, 5,0, 3,0} für den gemessenen Satz auswählen. In diesem Fall ist eine Abstandsmessung, die die Abweichungen von den idealen Werten wiedergibt, die Summe der absoluten Differenzen zwischen dem idealen Satz und dem gemessenen Satz, d. h. (⎪2,45 – 2,0⎪ + ⎪5,2 – 5,0⎪ + ⎪4,9 – 5,0⎪ + ⎪2,9 – 3,0?) bzw. 0,85. Die Abstandsmessung kann von dem Untersystem 114 zur Decodierung als statistische Sicherheit für das dem idealen Satz {2,0, 5,0, 5,0, 3,0} entsprechende alphanumerische Zeichen verwendet werden. Je näher der gemessene Satz bei dem idealen Satz liegt, desto kleiner ist die Abstandsmessung bzw. die statistische Sicherheit und desto größer ist die Sicherheit, daß der gemessene Satz der ideale Satz ist. Wenn diesem idealen Satz kein alphanumerisches Zeichen entspricht, wählt das Untersystem 1118 diesen Satz nicht als mögliche Wahl für das aktuelles Symbolzeichen aus.
  • Das Untersystem 1118 erzeugt alternative Wahlen, wenn die gemessenen Breiten ti in die Bereiche von mehr als einer idealen Breite fallen. Da die gemessene Breite t1 in dem Zeichensymbol 1600 2,45 beträgt, fällt der Wert sowohl in die Bereiche für 2,0 als auch für 3,0. Daher kann die gemessene Breite t1 3,0 anstelle von 2,0 entsprechen, und eine mögliche alternative Wahl für den gemessenen Satz ist der ideale Satz (3,0, 5,0, 5,0, 3,0). Die statistische Sicherheit für das zu diesem zweiten idealen Satz gehörige alphanumerische Zeichen ist 0,95. Da die vorherige Zeichenwahl eine niedrigere statistische Sicherheit als diese Zeichenwahl hat, wäre das vorherige Zeichen die erste Wahl in der von dem Untersystem 114 zur Decodierung erzeugten Zeichentabelle. Weitere Zeichen sind ebenfalls möglich, doch wenn davon ausgegangen wird, daß die anderen gemessenen Breiten ti jeweils in den Bereichen nur einer idealen Breite liegen, wählt das Untersystem 1118 keine weiteren alternativen Wahlen aus.
  • Das Untersystem 1118 decodiert jedes der Symbolzeichen in einem erfaßten Strichcodesymbol in Code 128 durch Ausführen einer ähnlichen Analyse an jedem Satz von drei Strichen und drei Zwischenräumen, die einem Symbolzeichen entsprechen. Die resultierenden Wahlen an alphanumerischen Zeichen und die zugehörigen statistischen Sicherheiten werden von der Einrichtung 906 des Untersystems 114 zur Decodierung zur Erzeugung und Aktualisierung der zur Erzeugung von Zeichensätzen für die Prüfsummenanalyse verwendeten Zeichentabelle verwendet.
  • Die Decodierung von Strichcodesymbolen durch die Analyse in einander überlappenden Schritten
  • In 17 ist ein Ablaufdiagramm der von dem Untersystem 1700 zur Analyse in einander überlappenden Schritten ausgeführten Verarbeitung zur Decodierung von Strichcodesymbolen durch eine Analyse in einander überlappenden Schritten gezeigt. Das Untersystem 1700 zur Analyse in einander überlappenden Schritten funktioniert im wesentlich wie das Untersystem 904 zur schrittweisen Analyse, außer daß bei dem Untersystem 1700 zur Analyse in einander überlappenden Schritten jeder Suchschritt zur Ausführung einer Unterpixelinterpolation von zwei oder mehr Symbolelementen des erfaßten Strichcodesymbols genutzt wird und jeder Suchschritt ein oder mehr Symbolelemente mit zumindest einem weiteren Suchschritt gemein hat. Dies bedeutet, daß zwischen aufeinanderfolgenden Suchschritten eine Überlappung von Symbolelementen vorliegt. Das Untersystem 1700 zur Analyse in einander überlappenden Schritten bestimmt die jedem Symbolelement zuzuweisenden Signalenergiewerte durch Vergleichen der redundanten Signalenergiewerte, die aufgrund von zwei oder mehr Unterpixelinterpolationen für das Symbolelement existieren können.
  • Eine Einrichtung 1702 kann die Unterpixelinterpolation entlang mehreren Suchschritten ausführen, die durch eine Projektion auf eine Bezugslinie ausgewählt werden können, die der durch das Untersystem 904 zur schrittweisen Analyse ausgeführten ähnelt. Jeder Suchschritt wird zur Bestimmung des Signalenergiewerts für zwei oder mehr Symbolelemente verwendet. Anders als das Untersystem 904 zur schrittweisen Analyse, das den nächsten Suchschritt dort beginnt, wo der vorherige Suchschritt beendet wurde, wiederholt das Untersystem 1700 zur Analyse in einander überlappenden Schritten gezielt die Unterpixelinterpolation für Symbolelemente, die zuvor analysiert wurden. Daher überlappen sich die Suchschritte des Untersystems 1700 zur Analyse in einander überlappenden Schritten, wogegen die des Untersystems 904 zur schrittweisen Analyse jeweils Ende auf Ende aufeinander folgen.
  • Eine Einrichtung 1704 vergleicht dann zur Auswahl eines einzigen Signalenergiewerts für das betreffende Symbolelement die redundanten Ergebnisse für jedes Symbolelement des Strichcodesymbols. Diese Auswahl kann durch Ermittlung des Mittelwerts der redundanten Signalenergiewerte erfolgen. Alternativ können zur Auswahl eines einzigen Signalenergiewerts für jedes Symbolelement andere Arten von statistischen Analysen ausgeführt werden. Nachdem jedem Symbolelement ein Signalenergiewert zugewiesen ist, kann das Untersystem 1118 zur Bestimmung der Zeichen gemäß 11 Zeichenwahlen zur Verwendung durch das Untersystem 114 zur Decodierung erzeugen, wie früher in dieser Beschreibung besprochen.
  • In 18 ist eine grafische Darstellung eines ein weder mit den Pixelzeilen noch mit den Pixelspalten des Pixelbilds ausgerichtetes Strichcodesymbol 1802 enthaltenden Pixelbilds 1800 gezeigt. Das Strichcodesymbol 1802 enthält Striche 1806 bis 1822 und Zwischenräume 1824 bis 1838. Das Untersystem 1700 zur Analyse in einander überlappenden Schritten kann das Strichcodesymbol 1802 durch schrittweise Analyse der Bezugslinie 1804 decodieren, um eine Unterpixelinterpolation entlang Suchschritten 1840 bis 1864 auszuführen. Bei jedem Suchschritt erzeugt die Einrichtung 1702 Signalenergiewerte für ein oder mehrere Elemente des Strichcodesymbols 1802. Die Einrichtung 1702 kann beispielsweise eine Unterpixelinterpolation entlang dem Suchschritt 1840 ausführen, um Signalenergiewerte für den Strich 1806 und den Zwischenraum 1824 zu erzeugen. Ähnlich kann die Einrichtung 1702 eine Unterpixelinterpolation entlang dem Suchschritt 1842 ausführen, um Energiesignalwerte für die Striche 1806 und 1808 und den Zwischenraum 1824 zu erzeugen. Tabelle II enthält die Elemente des Strichcodesymbols 1802, die entlang den Suchschritten 1840 bis 1864 bestimmt werden können.
    SUCHSCHRITT ELEMENTE
    1840 1806, 1824
    1842 1806, 1824, 1808
    1844 1824, 1808, 1826, 1810
    1846 1808, 1826, 1810, 1828
    1848 1826, 1810, 1828, 1812, 1830
    1850 1810, 1828, 1812, 1830, 1814
    1852 1812, 1830, 1814, 1832
    1854 1830, 1814, 1832, 1816, 1834
    1856 1832, 1816, 1834, 1818, 1836
    1858 1816, 1834, 1818, 1836, 1820
    1860 1834, 1818, 1836, 1820, 1838, 1822
    1862 1836, 1820, 1838, 1822
    1864 1838, 1822
  • Jedes Element kann unter Verwendung eines oder mehrerer Suchschritte bestimmt werden. Der Strich 1808 kann beispielsweise unter Verwendung der Suchschritte 1842, 1844 und 1846 bestimmt werden. Die Einrichtung 1704 kann die Symbolelemente verfolgen, indem sie jedem Element einen seiner Position in dem Strichcodesymbol entsprechenden Versatzwert zuweist, wobei der Versatzwert auf der Summe der Signalenergiewerte für die vorhergehenden Elemente basiert. Der Strich 1806 des Strichcodesymbols 1802 ist beispielsweise der erste Strich in dem Symbol und weist einen Versatz von 0 auf. Erzeugt die Einrichtung 1702 entlang dem Suchschritt 1840 einen neun Modulen entsprechenden Signalenergiewert für den Strich 1806, weist der Zwischenraum 1824 einen Versatz von 9 auf.
  • Tabelle III zeigt die Versatzwerte und Signalenergiewerte, die von der Einrichtung 1702 in den Suchschritten 1840 bis 1864 erzeugt werden können. Der Suchschritt 1844 beginnt mit dem Zwischenraum 1824 mit dem auf den von der Einrichtung 1702 jeweils entlang den Suchschritten 1840 und 1842 erzeugten Signalenergiewerten 8 und 9 für den Strich 1806 basierenden Versatz B.
  • Figure 00690001
    TABELLE III
  • Da sich die von der Einrichtung 1702 in verschiedenen Suchschritten für jedes Symbolelement erzeugten Signalenergiewerte voneinander unterscheiden können, kann die Einrichtung 1704 zur Bestimmung eines dem betreffenden Element zuzuweisenden mittleren Signalenergiewerts den Mittelwert der Signalenergiewerte für jedes Element ermitteln, wie in Tabelle IV für das Beispiel gemäß 18 dargestellt. Alternativ kann die Einrichtung 1704 unter Verwendung anderer Arten von statistischen Analysen, einschließlich Wahlschemata, einen jedem Element zuzuweisenden Signalenergiewert bestimmen.
  • Figure 00700001
    TABELLE IV
  • Für Fachleute ist ersichtlich, daß Aspekte der vorliegenden Erfindung im Zusammenhang mit Systemen verwendet werden können, die Strichcodesymbole unter Verwendung von Laserscannern erfassen und decodieren. Fachleute werden erkennen, daß die Erfindung nicht auf die Verarbeitung von durch CCD-Vorrichtungen erzeugten Bildern beschränkt ist. Die vorliegende Erfindung kann beispielsweise zur Verarbeitung von durch einen Laserscanner erzeugten Bildern verwendet werden, der sich senkrecht zur Bewegungsrichtung eines Förderbands bewegt. Zudem kann das Konzept von eine oder mehrere Wahlen von alphanumerischen Zeichen für jedes Symbolzeichen enthaltenden Zeichentabellen auch von Systemen mit Laserscannern zur Decodierung von Strichcodesymbolen verwendet werden.
  • Wie vorstehend im Zusammenhang mit 1 beschrieben, kann die Einrichtung 102 des Erfassungssystems 100 ein Histogramm des gesamten eingegebenen Pixelbilds erzeugen. Das Histogramm wird dann zur Auswahl von Schwellenwerten zur Erfassung von Zustandsübergängen zwischen ruhigen Zonen und Anfangs- bzw. Endzeichen von Strichcodesymbolen verwendet. Das Histogramm wird auch zur Auswahl von bei einer Unterpixelinterpolation verwendeten minimalen und maximalen Pixelintensitätsniveaus verwendet, wie vorstehend im Zusammenhang mit den 14 und 15 beschrieben. Alternativ führt das Erfassungssystem 100 eine adaptive Schwellenwertbestimmung durch, bei der der dynamische Bereich von Pixelintensitätsniveaus für jeden Teil des Bilds separat bestimmt wird. Bei der adaptiven Schwellenwertbestimmung können die Schwellenwerte bei der Abtastung oder bei der Durchsuchung des Bilds eingestellt werden. Das Erfassungssystem 100 kann dann Bilder verarbeiten, deren dynamische Bereiche sich beispielsweise aufgrund einer ungleichmäßigen Beleuchtung über die Bildbereiche verändern.
  • Es ist ferner ersichtlich, daß von Fachleuten ohne eine Abweichung von Prinzip und Rahmen der in den folgenden Ansprüchen dargelegten Erfindung verschiedene Veränderungen an den Einzelheiten, Materialien und Anordnungen der Teile vorgenommen werden können, die zur Erläuterung des Konzepts der Erfindung beschrieben und dargestellt wurden.

Claims (18)

  1. Verfahren zum Decodieren eines Strichcodesymbols mit mehreren Zeichen, wobei eines der Zeichen ein Prüfsummenzeichen ist, mit den Schritten: (a) Empfangen eines das Symbol darstellenden Signals; (b) Bestimmen (904, 906) einer ersten decodierten Wahl für jedes der Zeichen aus dem Signal; (c) Bestimmen (904, 906) einer zweiten decodierten Wahl für zumindest eines der Zeichen aus dem Signal; (d) Vornehmen einer Prüfsummenanalyse (908, 910) nach Maßgabe der ersten decodierten Wahl für jedes der Zeichen; und (e) wenn der Prüfsummenanalyseschritt (d) nicht zufriedenstellend ist, Vornehmen (912, 908, 910) einer Prüfsummenanalyse nach Maßgabe der zweiten decodierten Wahl.
  2. Verfahren nach Anspruch 1, bei dem die Bestimmungen der Schritte (b) und (c) folgende Schritte aufweisen: (i) Durchsuchen des Signals in einer Dimension, um zwei benachbarte kritische Punkte zu lokalisieren, wobei die benachbarten kritischen Punkte Elementen entsprechen, die auf den beiden Seiten eines gegebenen Elements (1602, 1604,... 1612) des Symbols angeordnet sind; (ii) Berechnen eines Werts, der die Signalenergie zwischen den kritischen Punkten darstellt; und (iii) Bestimmen der decodierten Wahl des gegebenen Elements nach Maßgabe des Werts.
  3. Verfahren nach Anspruch 2, bei dem die zwei kritischen Punkte entweder beide Minima oder beide Maxima bezüglich benachbarter Pixel sind.
  4. Verfahren nach einem der Ansprüche 1 bis 3, mit dem weiteren Schritt des Bestimmens eines Zuverlässigkeitsfaktors, der jeweils der ersten und der zweiten decodierten Wahl zugeordnet ist, wobei ein einer ersten decodierten Wahl für eines der Zeichen zugeordneter Zuverlässigkeitsfaktor und ein einer zweiten decodierten Wahl für das Zeichen zugeordneter Zuverlässigkeitsfaktor anzeigen, daß die erste decodierte Wahl wahrscheinlicher richtig ist als die zweite decodierte Wahl.
  5. Verfahren nach Anspruch 2 oder Anspruch 4, soweit er sich auf Anspruch 2 bezieht, wobei der Schritt (iii) das Bestimmen der Breite des gegebenen Elements aufweist.
  6. Verfahren nach Anspruch 5, soweit er sich auf Anspruch 4 zurückbezieht, mit dem Schritt des Bestimmens der Abweichung, die jedem Element des Strichcodesymbols zugeordnet ist, wobei die Abweichung dem Unterschied der Breite zwischen dem besagten Element und einer idealen Breite entspricht, und wobei jeder Zuverlässigkeitsfaktor die Summe der Beträge der Abweichungen ist, die der ersten und der zweiten decodierten Wahl zugeordnet sind.
  7. Verfahren nach Anspruch 1, bei dem die Bestimmungen der Schritte (b) und (c) die Schritte des Schreitens längs eines Suchschritts (1228) und des Projizierens vom Suchschritt auf eine Bezugslinie (1226) aufweisen, die durch das Strichcodesymbol läuft.
  8. Verfahren nach Anspruch 1, bei dem Schritt (c) folgende Schritte aufweist: (i) Bestimmen einer zweiten decodierten Wahl für ein erstes der Zeichen; und (ii) Bestimmen einer zweiten decodierten Wahl für ein zweites der Zeichen, wobei Schritt (e) folgende Schritte aufweist: (i) wenn die Prüfsummenanalyse im Schritt (d) nicht zufriedenstellend ausfällt, Vornehmen einer Prüfsummenanalyse nach Maßgabe der zweiten decodierten Wahl für das erste Zeichen und der ersten decodierten Wahl für jedes andere der Zeichen; und (ii) wenn die Prüfsummenanalyse im Schritt (e) (i) nicht zufriedenstellend ausfällt, Vornehmen einer Prüfsummenanalyse nach Maßgabe der zweiten decodierten Wahl für das zweite Zeichen und der ersten decodierten Wahl für jedes andere der Zeichen.
  9. Verfahren nach Anspruch 1, bei dem die Bestimmungen der Schritte (b) und (c) in einer ersten Richtung (1018) vorgenommen werden, wobei folgende weitere Schritte vorgesehen sind: (f) Bestimmen einer oder mehrerer decodierter Wahlen für jedes der Zeichen aus dem Signal längs einer zweiten Richtung (1024, 1026); (g) Aktualisieren der ersten und der zweiten decodierten Wahlen der Schritte (b) und (c) nach Maßgabe der decodierten Wahlen des Schritts (f); und (h) Vornehmen einer Prüfsummenanalyse nach Maßgabe der aktualisierten ersten und zweiten decodierten Wahl.
  10. Vorrichtung zum Decodieren eines Strichcodesymbols (1002, 1202) mit mehreren Zeichen, wobei eines der Zeichen ein Prüfsummenzeichen ist, mit: (a) einer Einrichtung zum Empfangen eines das Symbol darstellenden Signals; (b) einer ersten Bestimmungseinrichtung (904, 906) zum Bestimmen einer ersten decodierten Wahl für jedes der Zeichen aus dem Signal; (c) einer zweiten Bestimmungseinrichtung (904, 906) zum Bestimmen einer zweiten decodierten Wahl für zumindest eines der Zeichen aus dem Signal; (d) eine erste Prüfsummeneinrichtung (908, 910) zum Vornehmen einer Prüfsummenanalyse nach Maßgabe der ersten decodierten Wahl für jedes der Zeichen; und (e) eine zweite Prüfsummeneinrichtung (912, 908, 910) zum Vornehmen einer Prüfsummenanalyse nach Maßgabe der zweite decodierten Wahl.
  11. Vorrichtung nach Anspruch 10, bei der die erste und die zweite Bestimmungseinrichtung (904) aufweisen: (i) eine Einrichtung (1402, 1404, 1502, 1504) zum Durchsuchen des Signals in einer Dimension, um zwei benachbarte kritische Punkte zu lokalisieren, die Elementen entsprechen, die auf den beiden Seiten eines gegebenen Elements (1602, 1604,... 1612) des Symbols angeordnet sind; (ii) eine Berechnungseinrichtung (1406, 1506) zum Berechnen eines Werts, der die Signalenergie zwischen den kritischen Punkten darstellt; und (iii) eine Einrichtung (1406, 1506) zum Bestimmen der decodierten Wahl des gegebenen Elements nach Maßgabe des Werts.
  12. Vorrichtung nach Anspruch 11, bei der die zwei kritischen Punkte entweder beide Minima oder beide Maxima bezüglich benachbarter Pixel sind.
  13. Vorrichtung nach einem der Ansprüche 10 bis 12, mit einer Einrichtung (904) zum Bestimmen eines Zuverlässigkeitsfaktors, der der ersten und der zweiten decodierten Wahl zugeordnet ist, wobei ein einer ersten decodierten Wahl für eines der Zeichen zugeordneter Zuverlässigkeitsfaktor und ein einer zweiten decodierten Wahl für das Zeichen zugeordneter Zuverlässigkeitsfaktor anzeigen, daß die erste decodierte Wahl wahrscheinlicher richtig ist als die zweite decodierte Wahl.
  14. Vorrichtung nach Anspruch 11 oder 13, soweit sich letzterer auf Anspruch 11 zurückbezieht, wobei die Einrichtung (iii) eine Einrichtung zum Bestimmen der Breite des gegebenen Elements aufweist.
  15. Vorrichtung nach Anspruch 14, soweit er sich auf Anspruch 13 zurückbezieht, mit einer Einrichtung zur Bestimmung der Abweichung, die jedem Element des Strichcodesymbols zugeordnet ist, wobei die Abweichung dem Unterschied der Breite zwischen dem besagten Element und einer idealen Breite entspricht, und wobei jeder Zuverlässigkeitsfaktor die Summe der Beträge der Abweichungen ist, die der ersten und der zweiten decodierten Wahl zugeordnet sind.
  16. Vorrichtung nach Anspruch 10, bei der die erste und die zweite Bestimmungseinrichtung längs eines Suchschritts (1228) schreiten und vom Suchschritt auf eine Bezugslinie (1226) projizieren, die durch das Strichcodesymbol läuft.
  17. Vorrichtung nach Anspruch 10, bei der die Bestimmungseinrichtung (904) aufweist: (i) eine Einrichtung zum Bestimmen einer zweiten decodierten Wahl für ein erstes der Zeichen; und (ii) eine Einrichtung zum Bestimmen einer zweiten decodierten Wahl für ein zweites der Zeichen, wobei die zweite Prüfsummeneinrichtung aufweist: (i) eine Einrichtung zum Vornehmen einer Prüfsummenanalyse nach Maßgabe der zweiten decodierten Wahl für das erste Zeichen und der ersten decodierten Wahl für jedes andere der Zeichen; und (ii) eine Einrichtung zum Vornehmen einer Prüfsummenanalyse nach Maßgabe der zweiten decodierten Wahl für das zweite Zeichen und der ersten decodierten Wahl für jedes andere der Zeichen.
  18. Vorrichtung nach Anspruch 10, bei der die erste und die zweite Bestimmungseinrichtung (904) jeweils die erste und die zweite decodierte Wahl in einer ersten Richtung (1018) bestimmen und außerdem aufweisen: (f) eine dritte Bestimmungseinrichtung (904) zum Bestimmen einer oder mehrerer decodierter Wahlen für jedes der Zeichen aus dem Signal längs einer zweiten Richtung (1024, 1026); (g) eine Einrichtung (906) zum Aktualisieren der ersten und der zweiten decodierten Wahlen der ersten und der zweiten Bestimmungseinrichtung nach Maßgabe der decodierten Wahlen der dritten Bestimmungseinrichtung; und (h) eine Einrichtung (910) zum Vornehmen einer Prüfsummenanalyse nach Maßgabe der aktualisierten ersten und zweiten decodierten Wahl.
DE69332771T 1992-08-10 1993-07-19 Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen Expired - Lifetime DE69332771T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US927905 1992-08-10
US07/927,905 US5329105A (en) 1992-08-10 1992-08-10 Method and apparatus for determining the width of elements of bar code symbols

Publications (2)

Publication Number Publication Date
DE69332771D1 DE69332771D1 (de) 2003-04-17
DE69332771T2 true DE69332771T2 (de) 2004-02-12

Family

ID=25455434

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69324095T Expired - Lifetime DE69324095T2 (de) 1992-08-10 1993-07-19 Verfahren und Vorrichtung zum Dedektieren von strichkodierten Symbolen mit Unterpixel-Interpolation
DE69332771T Expired - Lifetime DE69332771T2 (de) 1992-08-10 1993-07-19 Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69324095T Expired - Lifetime DE69324095T2 (de) 1992-08-10 1993-07-19 Verfahren und Vorrichtung zum Dedektieren von strichkodierten Symbolen mit Unterpixel-Interpolation

Country Status (7)

Country Link
US (2) US5329105A (de)
EP (2) EP0887760B8 (de)
AT (1) ATE178151T1 (de)
DE (2) DE69324095T2 (de)
DK (1) DK0591635T3 (de)
ES (2) ES2132154T3 (de)
GR (1) GR3030261T3 (de)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3077616B2 (ja) * 1997-01-31 2000-08-14 富士通株式会社 バーコード読取方法
US5979768A (en) * 1988-01-14 1999-11-09 Intermec I.P. Corp. Enhanced bar code resolution through relative movement of sensor and object
US6688523B1 (en) 1988-08-31 2004-02-10 Intermec Ip Corp. System for reading optical indicia
US5633446A (en) * 1990-04-18 1997-05-27 Plant Genetic Systems, N.V. Modified Bacillus thuringiensis insecticidal-crystal protein genes and their expression in plant cells
JPH07500966A (ja) * 1991-10-30 1995-02-02 プラント・ジエネテイツク・システムズ・エヌ・ベー 修飾遺伝子及びそれらの植物細胞における発現
JP3191999B2 (ja) * 1992-09-10 2001-07-23 オリンパス光学工業株式会社 バーコードシンボル読取装置
AU6267294A (en) * 1993-02-02 1994-08-29 Label Vision Systems, Inc. Method and apparatus for decoding bar code data from a video signal and applications thereof
JPH075564A (ja) * 1993-06-18 1995-01-10 Fuji Photo Film Co Ltd フイルムカートリッジ用バーコード読取り装置
US5446271A (en) * 1993-08-06 1995-08-29 Spectra-Physics Scanning Systems, Inc. Omnidirectional scanning method and apparatus
US6129278A (en) * 1994-05-19 2000-10-10 Metanetics Corporation Detecting image cell position with subpixel accuracy
ATE190415T1 (de) * 1994-06-07 2000-03-15 United Parcel Service Inc Verfahren und vorrichtung zur dekodierung eines zweidimensionalen symboles im raumbereich
US5515447A (en) * 1994-06-07 1996-05-07 United Parcel Service Of America, Inc. Method and apparatus for locating an acquisition target in two-dimensional images by detecting symmetry in two different directions
US5814803A (en) * 1994-12-23 1998-09-29 Spectra-Physics Scanning Systems, Inc. Image reader with multi-focus lens
US5770847A (en) * 1994-12-23 1998-06-23 Spectra-Physics Scanning Systems, Inc. Bar code reader with multi-focus lens
NL9500597A (nl) * 1995-03-28 1996-11-01 Scantech Bv Werkwijze en inrichting voor het decoderen van barcodes.
US5979763A (en) * 1995-10-13 1999-11-09 Metanetics Corporation Sub-pixel dataform reader with dynamic noise margins
US5777310A (en) * 1995-11-06 1998-07-07 Intermec Corporation Problem reduction with low level information integration in bar code decoding
US5966463A (en) * 1995-11-13 1999-10-12 Meta Holding Corporation Dataform readers using interactive storage and analysis of image data
US6039252A (en) * 1995-12-14 2000-03-21 Intermec Corporation Bar code reading system for reconstructing irregularly damaged bar codes
JP3324374B2 (ja) * 1995-12-25 2002-09-17 富士通株式会社 バーコード復調方法並びにバーコード読取装置
US5764798A (en) * 1996-03-18 1998-06-09 Intermec Corporation Prioritized searching methods for finding a coded symbol in a digitized image
US5811779A (en) * 1996-08-22 1998-09-22 General Electric Company Laser bar code reader system for a fuel rod in a boiling water nuclear reactor
US6012639A (en) * 1996-11-01 2000-01-11 Psc Scanning Inc. Edge detection method and apparatus for shot noise limited signals
US5767497A (en) * 1996-12-04 1998-06-16 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using ratio analysis of module size
DE19716886C2 (de) * 1997-04-22 2001-02-01 Sick Ag Verfahren und Vorrichtung zum Lesen eines Strichcodes
EP0980537B1 (de) * 1997-05-05 2007-11-14 Symbol Technologies, Inc. Optische abtastvorrichtung und bildleser zum bildlesen und dekodieren optischer information mit eine-und zweidimensionalen symbolen bei veränderlicher tiefenschärfe
US6135354A (en) * 1997-09-07 2000-10-24 Label Vision Systems, Inc. System and method for facilitating high speed processing of video signals containing images of barcode labels
US6102295A (en) * 1998-01-14 2000-08-15 Intermec Ip Corp. Method and apparatus for decoding symbols by declaring erasures of element characteristics
US5969326A (en) * 1998-01-14 1999-10-19 Intermec Ip Corp. Method and apparatus of autodiscriminating in symbol reader employing prioritized and updated table of symbologies
US7147161B2 (en) * 1998-06-12 2006-12-12 Symbol Technologies, Inc. Digitizing bar code symbol data
US6328213B1 (en) 1998-06-12 2001-12-11 Symbol Technologies, Inc. Method of processing an analog electrical signal containing information representative of reflected light from coded indicia, wherein the electrical signal contains edge transitions
US6688522B1 (en) * 1998-09-11 2004-02-10 L. V. Partners, L.P. Unique bar code
US6454168B1 (en) 1998-09-14 2002-09-24 Psc Scanning, Inc. Correlation and stitching techniques in a bar code scanning system
US6494376B1 (en) * 1998-09-14 2002-12-17 Psc Scanning, Inc. Compensation for scan line variations in a bar code scanner system
US6513714B1 (en) * 1998-09-14 2003-02-04 Psc Scanning, Inc. Character reconstruction and element level processing in bar code scanning system
US6585157B2 (en) 1998-09-14 2003-07-01 Psc Scanning, Inc. Symbology determination to aid decoding in a bar code scanning system
US6330972B1 (en) 1998-10-22 2001-12-18 Intermec Ip Corporation Error correction enhancement for code 93i and other machine-readable symbologies
JP3994595B2 (ja) * 1998-11-16 2007-10-24 株式会社デンソー バーコード読取方法及び記録媒体
US6688525B1 (en) * 1999-09-22 2004-02-10 Eastman Kodak Company Apparatus and method for reading a coded pattern
EP1238083A2 (de) * 1999-12-13 2002-09-11 Pioneer Hi-Bred International, Inc. Rad3 ortholog-1 und dessen verwendung
US20060082557A1 (en) * 2000-04-05 2006-04-20 Anoto Ip Lic Hb Combined detection of position-coding pattern and bar codes
AU5886801A (en) * 2000-05-09 2001-11-20 Colorzip Media Inc Machine readable code and method and device of encoding and decoding the same
US6751352B1 (en) * 2000-05-25 2004-06-15 Hewlett-Packard Development Company, L.P. Method and apparatus for generating and decoding a visually significant barcode
US7107453B2 (en) * 2000-05-25 2006-09-12 Hewlett-Packard Development Company, L.P. Authenticatable graphical bar codes
US20020021835A1 (en) * 2000-06-02 2002-02-21 Markus Andreasson Method and device for recording of information
US6666377B1 (en) 2000-07-18 2003-12-23 Scott C. Harris Bar code data entry device
DE10040614A1 (de) * 2000-08-16 2002-02-28 Gavitec Gmbh Verfahren zur automatischen Erkennung einer gerichteten Struktur
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
US6938017B2 (en) * 2000-12-01 2005-08-30 Hewlett-Packard Development Company, L.P. Scalable, fraud resistant graphical payment indicia
US6895116B2 (en) * 2001-06-07 2005-05-17 Hewlett-Packard Development Company, L.P. Automatically extracting graphical bar codes
US6802450B2 (en) * 2002-08-07 2004-10-12 Shenzhen Syscan Technology Co. Ltd Guiding a scanning device to decode 2D symbols
US7050631B2 (en) 2002-10-30 2006-05-23 Sick Auto Ident, Inc. Barcode detection system
US20040108386A1 (en) * 2002-12-09 2004-06-10 Rasti Mehran Randall Personalized postage and methodology to stop and trace a suspicious mail piece
US7137558B2 (en) * 2003-02-20 2006-11-21 R.R. Donnelley & Sons Company Methods and apparatus for forming barcode characters
JP4070631B2 (ja) * 2003-02-21 2008-04-02 富士通株式会社 バーコード読取装置およびバーコード読取方法
US7463770B2 (en) * 2003-07-21 2008-12-09 Lockheed Martin Corporation Methods and systems for detection of repeating patterns of features
US7364081B2 (en) * 2003-12-02 2008-04-29 Hand Held Products, Inc. Method and apparatus for reading under sampled bar code symbols
US7506816B2 (en) * 2004-10-04 2009-03-24 Datalogic Scanning, Inc. System and method for determining a threshold for edge detection based on an undifferentiated equalized scan line signal
US8314290B2 (en) 2004-12-21 2012-11-20 Monsanto Technology Llc Temporal regulation of gene expression by MicroRNAs
US7427018B2 (en) * 2005-05-06 2008-09-23 Berkun Kenneth A Systems and methods for generating, reading and transferring identifiers
US7775428B2 (en) * 2005-05-06 2010-08-17 Berkun Kenneth A Systems and methods for generating, reading and transferring identifiers
US7513436B2 (en) * 2005-06-30 2009-04-07 Symbol Technologies, Inc. Apparatus and methods for optical representations of radio frequency identification tag information
WO2007035863A2 (en) 2005-09-21 2007-03-29 Intermec Ip Corp. Radio frequency identification tags based on coalition formation
US8120461B2 (en) 2006-04-03 2012-02-21 Intermec Ip Corp. Automatic data collection device, method and article
US8002173B2 (en) 2006-07-11 2011-08-23 Intermec Ip Corp. Automatic data collection device, method and article
US7546955B2 (en) * 2007-03-16 2009-06-16 Intermec Ip Corp. Systems, devices, and methods for reading machine-readable characters and human-readable characters
WO2008118419A1 (en) * 2007-03-23 2008-10-02 Ltt, Ltd Method and apparatus for reading a printed indicia with a limited field of view sensor
WO2008118425A1 (en) 2007-03-23 2008-10-02 Ltt, Ltd Method and apparatus for using a limited capacity portable data carrier
US8662396B2 (en) * 2007-03-23 2014-03-04 Labels That Talk, Ltd Method for reproducing and using a bar code symbol
JP5262869B2 (ja) * 2009-03-12 2013-08-14 株式会社リコー 画像処理システム、画像処理サーバ、mfp及び画像処理方法
CN102034084B (zh) * 2009-09-25 2013-03-06 神基科技股份有限公司 多类型条形码的辨识方法及条形码辨识装置
EP2393036B1 (de) * 2010-06-01 2016-03-02 Fujian Newland Computer Co., Ltd. Strichcode-Decodierchip
US20130021393A1 (en) * 2011-07-22 2013-01-24 Combs Gregg A Static elecronic display
US9607200B2 (en) 2014-10-09 2017-03-28 Cognex Corporation Decoding barcodes
US10599902B2 (en) * 2014-10-09 2020-03-24 Cognex Corporation Methods and apparatus for decoding under-resolved symbols
CN109190434B (zh) * 2018-06-25 2021-08-24 广东工业大学 一种基于亚像素级角点检测的条码识别算法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1526568A (fr) * 1966-07-14 1968-05-24 Ibm Système de lecture de caractères
MX4130E (es) * 1977-05-20 1982-01-04 Amdahl Corp Mejoras en sistema de procesamiento de datos y escrutinio de informacion utilizando sumas de comprobacion
GB2063628B (en) * 1979-11-17 1983-12-07 Racal Res Ltd Data transmission
US4613759A (en) * 1984-06-04 1986-09-23 Nippon Kogaku K.K. Small photoelectric reading apparatus
US4620444A (en) * 1984-10-15 1986-11-04 General Electric Company High speed gated peak detector
US4822986A (en) * 1987-04-17 1989-04-18 Recognition Equipment Incorporated Method of detecting and reading postal bar codes
CA1310417C (en) * 1987-09-28 1992-11-17 Hideki Okamura Combining bar code read data
US4794239A (en) * 1987-10-13 1988-12-27 Intermec Corporation Multitrack bar code and associated decoding method
FR2622992B1 (fr) * 1987-11-06 1990-02-09 Thomson Semiconducteurs Procede de lecture de codes a barres
FR2631476B1 (fr) * 1988-05-10 1992-01-03 Bertin & Cie Procede et dispositif de lecture d'un code barres sur un support sensiblement immobile
JPH07101437B2 (ja) * 1988-06-21 1995-11-01 アルプス電気株式会社 符号読取装置
US4988852A (en) * 1988-07-05 1991-01-29 Teknekron Transportation Systems, Inc. Bar code reader
US4873426A (en) * 1988-08-03 1989-10-10 Image Business Systems Corporation Technique for reading bar codes
US5086215A (en) * 1988-10-26 1992-02-04 National Computer Systems, Inc. Method and apparatus for discriminating or locating bar codes for an optical mark reader
JPH02141889A (ja) * 1988-11-22 1990-05-31 Eastman Kodatsuku Japan Kk バーコード読取方法
US4958064A (en) * 1989-01-30 1990-09-18 Image Recognition Equipment Corporation Bar code locator for video scanner/reader system
DE3903595A1 (de) * 1989-02-07 1990-08-09 Proteus Ges Fuer Datentechnik Verfahren zum lesen von barcodes
US5073954A (en) * 1989-02-28 1991-12-17 Electrocom Automation, Inc. Bar code location and recognition processing system
US5319181A (en) * 1992-03-16 1994-06-07 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code using CCD/CMD camera
US5081689A (en) * 1989-03-27 1992-01-14 Hughes Aircraft Company Apparatus and method for extracting edges and lines
JPH07101429B2 (ja) * 1989-05-30 1995-11-01 富士通株式会社 バーコードリーダーのアナログ信号処理方式
US5247523A (en) * 1989-07-12 1993-09-21 Hitachi, Ltd. Code error correction apparatus
US4963719A (en) * 1989-11-01 1990-10-16 Spectra-Physics Bar code scanner and method of scanning
JP2957727B2 (ja) * 1990-03-28 1999-10-06 オムニプラナー,インコーポレーテッド バーコードロケーション及びオリエンテーションのための二重メモリを有する二重プロセッサ全方向型バーコードリーダ
US5155343A (en) * 1990-03-28 1992-10-13 Chandler Donald G Omnidirectional bar code reader with method and apparatus for detecting and scanning a bar code symbol
JP2957726B2 (ja) * 1990-03-28 1999-10-06 オムニプラナー,インコーポレーテッド 高速・全方向型バーコードリーダのための改良された方法及び装置
US4992650A (en) * 1990-03-29 1991-02-12 International Business Machines Corporation Method and apparatus for barcode recognition in a digital image
US5120940A (en) * 1990-08-10 1992-06-09 The Boeing Company Detection of barcodes in binary images with arbitrary orientation
DE4035396A1 (de) * 1990-11-07 1992-05-14 F & O Elektronic Systems Gmbh Verfahren und vorrichtung zum lesen und identifizieren der information einer zeichen-vorlage, insbesondere barcode, innerhalb eines zwei- oder dreidimensionalen feldes mittels einer videokamera, die ein binaeres videosignal des bildes erzeugt

Also Published As

Publication number Publication date
DE69324095D1 (de) 1999-04-29
DE69332771D1 (de) 2003-04-17
ES2132154T3 (es) 1999-08-16
EP0887760A2 (de) 1998-12-30
EP0591635A2 (de) 1994-04-13
EP0591635A3 (en) 1994-06-22
DE69324095T2 (de) 1999-07-15
US5550365A (en) 1996-08-27
DK0591635T3 (da) 1999-10-11
GR3030261T3 (en) 1999-08-31
EP0887760B8 (de) 2003-05-07
ES2195237T3 (es) 2003-12-01
ATE178151T1 (de) 1999-04-15
EP0887760A3 (de) 2001-02-07
EP0887760B1 (de) 2003-03-12
EP0591635B1 (de) 1999-03-24
US5329105A (en) 1994-07-12

Similar Documents

Publication Publication Date Title
DE69332771T2 (de) Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen
DE10036110B4 (de) Verfahren zur Bestimmung des Schrägwinkels eines zweidimensionalen Barcodes
DE19814075B4 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
DE69433492T2 (de) Verfahren und Vorrichtung zum Dekodieren von Streifencodes durch unabhängige Analyse von Streifen und Zwischenräumen
DE69728482T2 (de) Zweidimensionaler Codeleser
DE102009059264B9 (de) Verfahren zum schnellen Lokalisieren eines entschlüsselbaren Musters
EP1260933B1 (de) Verfahren zum Erfassen von zweidimensionalen Codes
DE69937142T2 (de) Fingerabdruck-identifikations/überprüfungssystem
EP3428834B1 (de) Optoelektronischer codeleser und verfahren zum lesen von optischen codes
EP2417561B1 (de) Zweidimensionaler symbolcode und verfahren zum lesen des symbolcodes
DE2831582C2 (de) Verfahren zur Identifizierung einer Person und Vorrichtung zur Durchführung des Verfahrens
DE3716787C2 (de)
DE3926327C2 (de) Verfahren und System zum Erkennen von Zeichen auf einem Medium
DE60013101T2 (de) Zweidimensionales codemuster zum speichern biometrischer informationen und vorrichtung zum lesen dieser informationen
DE102015219541A1 (de) Dekodieren von strichcodes
EP0896290B1 (de) Verfahren und Vorrichtung zum Lesen eines aus einer vorgegebenen Anzahl von Codeelementen bestehenden Strichcodes
DE3633743A1 (de) Zeichenerkennungssystem
DE19722439A1 (de) Verfahren und Vorrichtung zur Auffindung und Dekodierung maschinenlesbarer Symbole einschließlich Datenmatrixsymbolen
DE60300476T2 (de) System zum Erkennen eines Barcodes
DE10025332A1 (de) Verfahren zum Lesen eines zweidimensionalen Barcodes
DE69814105T2 (de) Verfahren zur automatischen Regulierung der Eigenschaften eines optischen Codelesesystems
DE19711873C2 (de) Verfahren und Vorrichtung zum Lesen eines Strichcodes
EP0125266B1 (de) Verfahren und vorrichtung zum identifizieren von gegenständen
DE69935705T2 (de) Gerät und Verfahren zum Bildvergleich
DE69813416T2 (de) Vorrichtungen zur Linienrichtungsbestimmung, Bildschrägeerfassung und Bildschrägekorrektur.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition