DE69126811T2 - Streifenkodeleser für alle Richtungen - Google Patents

Streifenkodeleser für alle Richtungen

Info

Publication number
DE69126811T2
DE69126811T2 DE1991626811 DE69126811T DE69126811T2 DE 69126811 T2 DE69126811 T2 DE 69126811T2 DE 1991626811 DE1991626811 DE 1991626811 DE 69126811 T DE69126811 T DE 69126811T DE 69126811 T2 DE69126811 T2 DE 69126811T2
Authority
DE
Germany
Prior art keywords
bar code
image
code symbol
symbol image
interpolated
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
DE1991626811
Other languages
English (en)
Other versions
DE69126811D1 (de
Inventor
Eric P Batterman
Donald G Chandler
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.)
Omniplanar Inc
Original Assignee
Omniplanar 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 Omniplanar Inc filed Critical Omniplanar Inc
Publication of DE69126811D1 publication Critical patent/DE69126811D1/de
Application granted granted Critical
Publication of DE69126811T2 publication Critical patent/DE69126811T2/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/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/1491Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Toxicology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

  • Die Erfindung betrifft den Bereich der maschinenlesbaren Symbole und insbesondere ein Verfahren und eine Vorrichtung zum Lesen von Strichcode-Symbolen.
  • Verschiedene maschinenlesbare Symbole sind für zahlreiche Anwendungen entwickelt worden. Beispielsweise ist der universelle Produktcode (UPC) eine Strichcode-Symbolik, welche weithin in der U.S.-Einzelhandelsindustrie zum Identifizieren von Produkten in der Kassenzone oder für Zwecke der Inventur verwendet wird. Im industriellen Bereich sind andere Strichcode-Systeme bei Packungsidentifikationssystemen verwendet worden. Übliche Strichcode-Systeme sind insbesondere CODABAR, Code 39, Interleaved 2 aus 5, und Code 49. Im allgemeinen bieten maschinenlesbare Codes signifikante Vorzüge hinsichtlich der Effizienz bei der Materialhandhabung und bei der Datenerfassung.
  • Ein Strichcode ist eine besondere Art von maschinenlesbarem Symbol. Ein typischer Strichcode beinhaltet parallele ausgefüllte Linien oder Striche von unterschiedlicher Breite und unterschiedlichem Abstand. Die durch die Streifen gebildeten abwechselnden hellen und dunklen Bereiche und die Zwischenräume zwischen den Strichen repräsentieren einen digitalen Code, der dazu dient, den Inhalt des Strichcode-Symbols zu identifizieren. Nachdem er gelesen ist, wird der digitale Code sodann direkt in eine Sequenz alphanumerischer Zeichen übersetzt und kann dann mittels einer Datenbank in die umgangssprachliche Beschreibung des Objektes, welches das betreffende Strichcode-Etikett trägt, zusammen mit anderen relevanten Daten, beispielsweise dem gegenwärtigen Preis des Objektes, übersetzt werden.
  • Ein Strichcode kann durch Abtasten gelesen werden. Typischerweise wird ein kleiner Lichtpunkt aus einer Beleuchtungsquelle auf die Oberfläche des Strichcodes gerichtet. Das reflektierte Licht wird durch ein photoempfindliches Element aufgenommen. Der kleine beleuchtete Lichtfleck wird dann über die Oberfläche des Barcodes gefahren, während die Intensität des resultierenden reflektierenden Lichtes aufgenommen wird. Da helle Bereiche mehr Licht als dunkle Bereiche reflektieren, repräsentiert die Intensität des reflektierten Lichtes den digitalen Code, der dazu dient, den Inhalt des Strichcode-Symbols zu identifizieren.
  • Bei einem Typ von Strichcodeleser wird ein in der Hand gehaltener Laser oder eine in der Hand gehaltene Leuchtdiode als Beleuchtungsquelle verwendet, und der Leser wird manuell über die Oberfläche des Strichcodes geführt. Bei einem Strichcodeleser des Abtasttyps ist die Lichtquelle stationär, während der Lichtstrahl in einem Abtast-Muster bewegt wird. Ein typisches Abtastmuster kann ein bidirektionales Hin- und Herführen sein. Bei dem letzteren Typ von Abtaster müssen das Strichcodesymbol und der Strichcodeleser noch manuell ausgerichtet werden, so daß das Abtastmuster alle Striche des Strichcodes abtastet, damit der Strichcode korrekt abgetastet und gelesen wird.
  • Bei einem anderen Typ von Strichcodeabtaster wird ein Laserstrahl in einer komplexen Folge sich wiederholender geometrischer Muster geführt, um ein in gewissem Maße ungerichtetes Abtasten vorzusehen. Alle ungerichteten laserbasierten Abtaster neigen dazu, infolge der Anfangskosten und der begrenzten Lebensdauer der Laserlichtquelle teuer zu sein, und die dazugehörigen komplexen optischen Elemente schließen üblicherweise rasch rotierende polygonale Spiegel ein. Auch verwenden laserbasierte Abtaster eine intensive konzentrierte Lichtquelle, die ein Augenrisiko sein kann und die spezielle Vorsichtsmaßnahmen bei der Herstellung und beim Gebrauch erfordert.
  • Schließlich neigen ungerichtete Laserabtaster dazu, bei Strichcodesymbolen, die durch Abrieb, Schmutz, Druckfehler und dgl. beschädigt sind, schlecht zu funktionieren. Diese letztere Begrenzung wird durch Abtastmuster verursacht, bei denen es wahrscheinlich ist, daß sie nur einmal durch das Strichcodeetikett geführt werden, wenn es unter dem Abtaster hindurchgeführt wird. Wenn die Laserbewegung einen beschädigten Bereich des Strichcodeetikettes schneidet, wird ein Lesefehler (oder ein Leseaussetzer) auftreten. Darüberhlnaus lesen ungerichtete Laserabtaster wegen der begrenzten Anzahl von Abtastwinkeln in dem Abtastmuster keine Strichcodes mit kleinem Seitenverhältnis. Auch können ungerichtete Laserabtaster geschachtelte Strichcodes wie Code 49 nicht lesen.
  • Bei einem anderen Typ von Strichcodeleser wird ein Abbild eines Strichcodes über einer eindimensionalen Aneinanderreihung photoempfindlicher Elemente gebildet. Diese einzeilige photoempfindliche Aneinanderreihung wird nachfolgend seriell ausgelesen, um eine Abtastlime durch den Strichcode zu simulieren. Bei einem anderen Typ von Strichcodeleser wird ein zweidimensionales Abbild eines Strichcodes auf einer zweidimensionalen Aneinanderreihung von lichtempfindlichen Elementen gebildet und nachfolgend in einem Speicher für eine nachfolgende Verarbeitung gespeichert. Bei derartigen Strichcodelesern aus dem Stand der Technik ist es nach wie vor notwendig, den Strichcode zum Leser zu positionieren und auszurichten.
  • Im allgemeinen ist es beim Stand der Technik für den Bediener typischerweise erforderlich, entweder den Strichcode auszurichten oder andernfalls den Strichcode und/oder den Leser manuell zu positionieren, um einen einwandfreien Betrieb zu erzielen. Darüber hinaus haben Strichcodeleser nach dem Stand der Technik Probleme beim Lesen beschädigter Etiketten oder geschachtelter oder mehrfacher Strichcodes. Das gemeinsame Ergebnis dieser Beschränkungen sind falsch gelesene Strichcodes oder ungelesene Strichcodes, sogar nach wiederholten Versuchen. Wenn es nicht möglich ist, den Strichcode abzutasten, müssen die Daten manuell gelesen und eingegeben werden. In emigen Fällen wird das Strichcodesymbol die abtastende Station vollständig undetektiert und ungelesen passieren. In jedem Fall werden die Vorzüge des Markierens von Produkten mit maschinenlesbaren Symbolen infolge der Begrenzungen der Strichcodeleser nach dem Stand der Technik vermindert oder gehen verloren.
  • Die veröffentlichte europäische Patentanmeldung EP-A 0,350,933 offenbart ein Verfahren zum Lesen eines Strichcodes. Das offenbarte Verfahren beinhaltet das Gewinnen und Abspeichern eines zweidimensionalen Bildes, das ein Abbild eines Strichcodes irgendwo innerhalb des zweidimensionalen Bildes enthält. Die Bilddaten sind als Zwei-Pegel- Werte gespeichert, die aus den Eingangsdaten abgeleitet werden. Das abgespeicherte Bild wird zum Lokalisieren des Strichcodebildes verarbeitet. Das Strichcodebild wird als schwarzes "Skelett" gegen einen weißen Hintergrund unter Verwendung von Umgrenzungsliniendetektionsverar beitung detektiert. Die Längserstreckung des Skelettbereiches wird genutzt, um die Abtastrichtung zum Lesen oder Decodieren des Strichcodebildes zu bestimmen.
  • Die vorliegende Erfindung ist in einem Strichcodeleser verkörpert, in dem Strichcodes rasch und zuverlässig gelesen werden. Darüberhinaus sieht ein erfindungsgemäßer Strichcodeleser ein ungerichtetes Hochgeschwindigkeits-Lesen mehrfacher oder geschachtelter Strichcodesymbole oder sogar beschädigter Strichcodeetiketten vor, die sich in einer zufälligen Ausrichtung, einer zufälligen Entfernung und in relativer Bewegung bezüglich des Lesers befinden.
  • Die uritenstehend beschriebene Ausführungsform des erfindungsgemäßen Strichcodelesers beinhaltet 1) eine Einrichtung zum Aufnehmen und Speichern eines zweidimensionalen Abbildes in einem Speicher, wobei das abgespeicherte Abbild ein Strichcodesymbol irgendwo innerhalb des Gesichtsfeldes enthält, 2) eine Detektionseinrichtung zum Verarbeiten des abgespeicherten Abbildes zum Detektieren einer potentiellen Lage oder potentieller Lagen irgendwo innerhalb des Gesichtsfeldes des gespeicherten Abbildes, wobei jeder der Lagen wahrscheinlich ein Strich codesymbol aufweist, 3) eine Orientierungsverarbeitungseinrichtung zum Bestimmen der Ausrichtung des detektierten Strichcodesymbols an der wahrscheinlich ein Strichcodesymbol aufweisenden Lage, 4) eine Filterungseinrichtung zum Filtern des detektierten Strichcodesymbols in einer Richtung senkrecht zu der bestimmten Ausrichtung des detektierten Strichcodesymbols, um die Redundanz der Strichcode-Symbolik zu nutzen, und 5) eine Einrichtung zum Abtasten des detektierten Strichcodesymbols an einer der detektierten potentiellen Stelle entsprechenden Stelle und mit einem der bestimmten Ausrichtung des detektierten Strichcodesymbols im wesentlichen entsprechenden Winkel.
  • Es wird angemerkt, daß verschiedene Kombinationen der vorstehenden fünf Elemente, d.h. Bildaufnahme, Detektion, wahrscheinliche Strichcode-Lage, Bestimmung der Orientierung des Strichcodes, Strichcodefilterung und Strichcodeabtastung, zur Gänze oder teilweise zu zusammengesetzten Operationen kombiniert werden können. Beispielsweise können die Detektion wahrscheinlicher Strichcode-Lagen und die grobe Bestimmung der Strichcode-Orientierung zur gleichen Zeit ausgeführt werden. Die Strichcode-Feinorientierung und -Filterung können gleichfalls in einer zusammengesetzten Operation ausgeführt werden. Darüberhinaus können die Strichcodefilterung und die Strichcodeabtastung in einem kombinierten Verarbeitungsschritt ausgeführt werden.
  • Es ist ferner festzuhalten, daß die Strichcodefilterung optional ist, obgleich vier der vorstehend identifizierten Elemente, d.h., Strichcode- Bildaufnahme, Lageerkennung, Orientierung und Abtastung, für das ungerichtete Strichcodelesen erforderliche Operationen sind. Beispielsweise kann es bei einigen Anwendungen ausreichend sein, sich auf eine oder mehrere erfolgreiche Abtastungen zu verlassen, sobald das Strichcodesymbol lokalisiert und einwandfrei orientiert ist.
  • Es ist jedoch wünschenswert, daß die Gesamtbildverarbeitung in mindestens zwei Abschnitte aufgeteilt wird, wobei der erste Verarbeitungsabschnitt die Verarbeitung einer großen Menge von Bilddaten, die in einer kurzen Zeit verarbeitet werden müssen, ermöglicht, und wobei der zweite Verarbeitungsabschnitt relativ intensiver und konzentrierter ist. Während des ersten Verarbeitungsabschnitts können einige Bereiche des abgespeicherten Bildes als wahrscheinlich ein Strichcodesymbol enthaltend identifiziert werden. In einem derartigen Fall bearbeitet der zweite Verarbeitungsabschnitt nur die Teile des abgespeicherten Bildes, die als wahrscheinlich einen Strichcode enthaltend identifiziert sind. Obgleich der zweite Verarbeitungsabschnitt eine intensivere Verarbeitung beinhaltet, wird infolge der selektiven Identifikation der wahrscheinlich Strichcodes enthaltenden Bildbereiche während des ersten Verarbeitungsabschnittes ein relativ gesehen kleinerer Bildbereich benötigt, um während des zweiten Verarbeitungsabschnittes verarbeitet zu werden.
  • Die vorliegende Erfindung ist insbesondere mit der Lageerkennung von Strichcocebildem innerhalb eines aufgenommenen zweidimensionalen Bildes befaßt und die Orientierung liefert in ihren breitesten Aspekten ein Verfahren zum Lesen eines Strichcodes wie in Anspruch 1 ausgeführt und einen Strichcodeleser wie in Anspruch 12 ausgeführt.
  • Das Verfahren und die Vorrichtung der vorliegenden Erfindung werden im folgenden unter Bezugnahme auf die in der beigefügten Zeichnung veranschaulichte Ausführungsform näher erläutert:
  • Fig. 1 ist ein Blockschaltbild, teilweise in Form eines Ablaufdiagram mes, das ein Verfahren und eine Vorrichtung in Übereinstimmung mit der vorliegenden Erfindung angibt;
  • Fig. 2 ist ein Blockschaltbild eines erfindungsgemäßen Systems für einen Strichcodeleser;
  • Fig. 3 ist eine grafische Darstellung eines zweidimensionalen Bildbereiches, die individuelle Zellen veranschaulicht, die beim Bestimmen der Lage und der Ausrichtung eines Strichcodesymbols verwendet werden.
  • Fig. 3A ist eine Darstellung eines Teils des Bildbereiches aus Fig. 3, wobei der Teil ein Strichcodesymbol aufweist;
  • Fig. 4 ist ein Ablaufdiagramm, das das Steuerprogramm für die ASIC- Steuerung aus Fig. 2 veranschaulicht;
  • Fig. 5A und Fig. 5B zeigen ein Ablaufdiagramm, das das Steuerprogramm für den digitalen Signalprozessor aus Fig. 2 veranschaulicht;
  • Fig. 6A ist eine Darstellung eines Strichcodesymbols mit zwei typischen parallelen Abtastlinien, die im Zusammenhang mit den Ausfährungsformen der vorliegenden Erfindung genutzt werden können;
  • Fig. 6B veranschaulicht die Reflexionssignale der beiden parallelen Abtastlinien aus Fig. 6A;
  • Fig. 6C stellt die Signaldifferenzen zwischen aufeinanderfolgenden Datenpunkten entlang jeder der beiden entsprechenden Abtastlinien aus Fig. 6B dar;
  • Fig. 6D veranschaulicht die Produkte der Signaldifferenzen für jeden der entsprechenden Datenpunkte der in Fig. 6C gezeigten Signaldifferenzen und die Gesamtsumme aller Produkte der Signaldifferenzen entlang zweier paralleler Abtastlinien, die im Zusammenhang mit der vorliegenden Erfindung genutzt werden;
  • Fig. 7A ist eine Darstellung eines Schwarz-Weiß-Übergangs mit zwei typischen parallelen Abtastlinien, die im Zusammenhang mit der vorliegenden Erfindung von einem Strichcodesymbol unter schieden werden können;
  • Fig. 7B veranschaulicht die Reflexionssignale von den beiden parallelen Abtastlinien aus Fig. 7A;
  • Fig. 7C stellt die Signaldifferenzen zwischen aufeinanderfolgenden Datenpunkten entlang jeder der beiden entsprechenden Abtastlinien aus Fig. 7B dar;
  • Fig. 7D veranschaulicht die Produkte der Signaldifferenzen für jeden der entsprechenden Datenpunkte der in Fig. 7C gezeigten Signaldifferenzen und die Gesamtsumme aller Produkte der Signaldiffferenz entlang der beiden parallelen Abtastlinien;
  • Fig. 8A ist ein Abbild eines Strichcodesymbols unter einem Winkel zu der Abtastrichtung, wobei ein Teil des abgetasteten Bereiches angegeben ist.
  • Fig. 8B veranschaulicht das Reflexionssignal von einer Abtastlinie des in Fig. 8A angegebenen Abtastbereiches.
  • Fig. 8C veranschaulicht die Abtastlinie aus Fig. 8B nach der Verarbeitung durch Interpolation.
  • Fig. 8D zeigt eine interpolierte Abtastlinie und eine andere interpolierte Abtastlinie, vier Abtastlinien voneinander beabstandet.
  • Fig. 8E zeigt acht interpolierte Abtastlinien, die durch Verschieben übereinandergelegt sind;
  • Fig. 8F zeigt den Mittelwert der acht interpolierten und verschobenen Abtastlinien aus Fig. 8E;
  • Fig. 8G ist eine binäre Signaldarstellung der Wellenform aus Fig. 8F unter Verwendung des Gesamtsignalmittelwertes als binären Schwellenwert;
  • Fig. 9A ist die Kreuzkorrelationsfunktion der interpolierten ersten und zweiten Abtastlinien des Teils des abgetasteten Bereiches in Fig. 8A;
  • Fig. 9B ist eine Familie von Kreuzkorrelationskurven, von denen jede aus der Kreuzkorrelation der ersten interpolierten Abtastlinie mit nachfolgenden interpolierten Abtastlinien des Teils des abgetasteten Bereiches in Fig. 8A entstanden ist;
  • Fig. 9C zeigt die Spitzenwerte der Kreuzkorrelation für jede interpolierte Abtastlinie im Vergleich mit der interpolierten Abtastlinie für den Teil des in Fig. 8A angezeigten abgetasteten Bereiches, und
  • Fig. 10 ist eine Veranschaulichung des Strichcodesymbols, das die Art und Weise veranschaulicht, in welcher überlappende Teilabtastungen zum Bilden einer vollständigen Abtastung miteinander verkettet werden.
  • Eine kurze Übersicht über einen erfindungsgemäßen Strichcodeleser ist in Fig. 1 gezeigt. Ein Bildaufnahmesystem 14, das die erforderlichen optischen und erforderlichen photoempfindlichen Elemente aufweist, nimmt ein Bild des Gesichtsfeldes des Lesers auf, wobei das aufgenommene Bild ein Strichcodeetikett 12 enthalten kann.
  • Sobald das Bild in den Speicher aufgenommen ist, ist eine Einrichtung 16 zur Strichcode-Bildlokalisierung und zur groben Ausrichtung vorgesehen. Zusammen umfassen die Bildaufnahme 14 und die Strichcode- Bildlokalisierung und -Ausrichtung 16 den Teil des vorliegenden Strichcodelesers, der allgemein einen Strichcode innerhalb eines Gesichtsfeldes lokalisiert.
  • Sobald der Strichcode innerhalb des Gesichtsfeldes lokalisiert und seine grobe Ausrichtung bestimmt ist, ist eine Einrichtung 18 zum Bestimmen der Feinausrichtung des Strichcodes vorgesehen. Bei lokalisiertem Strichcode und festgestellter Feinausrichtung ist eine Einrichtung 20 zum Filtern des Strichcodes vorgesehen. Danach wird die Abtastung 22 des Strichcodes ausgeführt. Die Operationen des Bestimmens der Feinausrichtung 18, der Strichcodefilterung 20 und des Strichcodeabtastens 22 beinhalten zusammen den Teil des vorliegenden Strichcodelesers, der dazu dient, einen Strichcode "abzutasten", sobald dieser innerhalb eines Gesichtsfeldes lokalisiert worden ist. Nach dem Abtasten des Strichcodes liefert ein dem Fachmann bekannter Dekodierer 23 die decodierte Strichcodeetiketten-Ausgabe 24.
  • Die Operation des "Abtastens eines Strichcodes", wie sie beim Stand der Technik verwendet wird, betrifft das Führen eines beleuchteten Fleckes über einen Strichcode Die Operation des "Abtastens eines Strichcodes" meint hier unter Bezugnahme auf die vorliegende Erfindung, aus dem Bildspeicher aufeinanderfolgende Werte, die von dem Bildspeicher aus Reflektionswerten entlang einer Querführting über den Strichcode abgeleitet sind, zu extrahieren.
  • Eine bevorzugte Hardware-Ausführungsform der vorliegenden Erfindung ist in Fig. 2 gezeigt. Ein optisches System 26 ist mit einer Bildsensoraneinanderreihung 28 gekoppelt. Der Ausgang der Bildsensoraneinanderreihung 28 wird in einem AID-Wandler 30 einer Analog-/Digital-Wandlung unterzogen und in einem ersten Speicher 32 abgespeichert. Der erste Speicher 32 ist vorzugsweise ein dynamischer Speicher mit wahlfreiem Zugriff (DRAM). Eine Steuerung 34, die eine applikationsspezifisch integrierte Schaltung (ASIC) sein kann, steuert das Bildaufnahmesystem, um so ein Bild aufzunehmen und zu digitalisieren und es im DRAM 32 zu speichern. Die ASIC-Steuerung 34 führt auch einige andere Verarbeitungsaufgaben unter der Steuerung eines digitalen Signalprozessors 38 aus. Der digitale Signalprozessor 38 ist typischerweise ein Hochgeschwindigkeitsmikroprozessor wie etwa der von Analog Devices, Norwood, Massachussetts, erhältliche ADSP-2101. Der Speicherplatz für den digitalen Signalprozessor 38 beinhaltet sowohl ROM für das Speichern von Programmen als auch statischen Speicher mit wahlfreiem Zugriff 42 (SRAM) als Bildverarbeitungsspeicher. Teile des abgespeicherten Bildes in DRAM 32 können unter der Steuerung ASIC-Steuerung 34 in das SRAM 42 übertragen werden. Schließlich ist ein Eingangsanschluß 40 mit dem Eingang des digitalen Signalprozessors 38 verbunden, und ein Ausgangsanschluß 44 ist mit einem Dekodierer 23 gekoppelt, der mit dem Ausgang des digitalen Signalprozessors 38 gekoppelt ist.
  • Beim Betrieb wird das Lesen eines Strichcodes durch ein Eingangssignal am Anschluß 40 des digitalen Signalprozessors 38 begonnen. In Abhängigkeit von den Steuerungsausgängen des digitalen Signalprozessors 38 nimmt die ASIC-Steuerung 34 ein Bild zum Speichern in den DRAM- Speicher 32 auf. Ebenfalls abhängig von den Steuerungsausgängen des digitalen Signalprozessors 38 verarbeitet die ASIC-Steuerung 34 das im DRAM 32 gespeicherte Bild, um so die potentielle Lage oder die potentiellen Lagen, die wahrscheinlich ein Strichcodesymbol enthalten, zu bestimmen. Zur Lageverarbeitung wird das in DRAM 32 abgespeicherte Bild in kleinere Bereiche oder Zellen aufgeteilt, und jeder Zelle wird eine Lagebewertungsgröße zugeordnet. Je größer die Lagebewertungsgröße für eine gegebene Zelle ist, desto wahrscheinlicher enthält die Zelle mindestens einen Teil eines Strichcodesymbols.
  • Wenn die ASIC-Steuerung 34 die Lagebewertungs-Aufgabe beendet hat, untersucht der digitale Signalprozessor 38 die resultierenden Bewertungsgrößen und weist die ASIC-Steuerung 34 an, jene Bildbereiche, die von Interesse sind, aus dem DRAM 32 in das SRAM 42 zu transferieren. Der digitale Signalprozessor 38 verarbeitet danach die Teilbilder im SRAM 42, um die Ausrichtung des gespeicherten Strichcodebildes zu bestimmen, um die entlang einer Richtung senkrecht zu der bestimmten Ausrichtung ausgerichteten Strichcodeabbilder zu filtern, und um die ausgerichteten und gefilterten Strichcodeabbilder abzutasten. Nachdem alle Bereiche von Interesse vom DRAM 32 in das SRAM 42 transferiert und durch den digitalen Signalprozessor 38 verarbeitet worden sind, wird eine vollständige Strichcode-Ausgabeabtastung dem Dekodierer 23 geliefert, der am Anschluß 44 eine decodierte Strichcodeetikettenausgabe liefert. Alternativ kann die Funktion des Dekodierers 23, der einen seriellen oder parallelen Ausgang aufweisen kann, in die Programmierung des digitalen Signalprozessors 38 aufgenommen werden.
  • Wenn andererseits bei der Untersuchung der Lagebewertungsgrößen in dem in DRAM 32 abgespeicherten Bild kein Strichcode gefunden wurde, kann der digitale Signalprozessor 38 über die ASIC-Steuerung 34 das optische System 26, die Bildsensoraneinanderreihung 28 und den A/D- Wandler 30 anweisen, ein weiteres Bild in das DRAM 32 zur Verarbeitung aufzunehmen. Der Vorgang des Aufnehmens und Verarbeitens von Bildern kann fortgesetzt werden, bis ein Strichcodesymbol erfolgreich abgetastet ist.
  • Die Organisation des gespeicherten DRAM-Bildbereiches 48 ist in Fig. 3 gezeigt. Die Bildsensoraneinanderreihung 28 (Fig. 2) weist 768 Pixel in horizontaler Richtung und 576 Pixel in vertikaler Richtung auf. Ein geeigneter Bildsensor zum Gebrauch in der vorliegenden Erfindung ist das MOS-Bildsensorarray 98268, das von der Hitachi Corporation bezogen werden kann. Der Bildbereich 48 ist begrifflich in Zellen eingeteilt, wie etwa Zelle 49. Insbesondere ist der Bildbereich 48 in 24 Zellen in horizontaler Richtung und 72 Zellen in vertikaler Richtung geteilt, wobei jede Zelle aus 8 mal 32 Pixeln besteht. D.h., jede Zelle weist 8 Abtastlinien auf, wobei jede Abtastlinie 32 Pixel aufweist.
  • Der Bildbereich 48 ist in jede der vier Richtungen in Zellen aufgeteilt, d.h., der Bildbereich 48 ist in horizontale Zellen wie etwa Zelle 50 geteilt. Der Bildbereich 48 ist jedoch auch in vertikale Zellen wie etwa Zelle 52 geteilt. In ähnlicher Weise ist der Bildbereich 48 in Zellen entlang einer aufsteigenden Diagonale, d.h. 45 Grad, wie etwa Zelle 56, geteilt. Schließlich ist der Bildbereich 48 in Zellen entlang einer absteigenden Diagonale, d.h. 135 Grad, wie etwa Zelle 54, geteilt. Der Gebrauch von vier Richtungen von Abtastlinien ermöglicht es dem Lagefindungsprozeß, auch die grobe Orientierung des lokalisierten Strichcodeabbildes in derselben Operation zu bestimmen.
  • Für Zwecke der Veranschaulichung zeigt Fig. 3A ein Strichcodesymbol irgendwo innerhalb des Gesichtsfeldes des Bildes 48 und in einer Ausrichtung von 14 Grad zur Vertikalrichtung. Eine typische Vertikalrichtung 52 ist über einem Teil des Strichcodesymbols 58 gezeigt.
  • Der Teil des Programms der ASIC-Steuerung 34 (Fig. 2) zum Bestimmen der Lage oder der Lagen, die wahrscheinlich ein Strichcodesymbol enthält bzw. enthalten, ist in dem Ablaufdiagramm von Fig. 4 gezeigt. Bei einer gegebenen Zelle im Bildbereich 48 verwendet der Prozeß zwei Abtastlinien, d.h. Abtastlinie A und Abtastlinie B. Insbesondere ist die Abtastlinie A die erste der acht Abtastlinien einer gegebenen Zelle, und die Abtastlinie B ist die fünfte Abtastlinie einer gegebenen Zelle. Nach dem Eintritt in das Lagefindungsprogramm werden die angenäherte Ableitung der Abtastlinie A und die angenäherte Ableitung der Abtastlinie B in Schritt 60 berechnet. Für diesen Zweck wird eine Ableitung aus der Differenz zwischen zwei beliebigen aufeinanderfolgenden Pixeln angenähert. Um den Prozeß des Gewinnens einer angenäherten Ableitung zu beschleunigen, wird jeder andere Pixel in der Berechnung verwendet, d.h., anstelle des Verwendens aller 32 Pixel entlang einer Abtastlinie einer gegebenen Zelle werden alle anderen Pixel, d.h. 16 Pixel, zum Approximieren einer Ableitung benutzt. Nach dem Auffinden der angenäherten Ableitungen in jedem Punkt der Abtastlinie A und der Abtastlinie B in Schritt 60 wird das Punkt-für-Punkt-Produkt beider Ableitungen in Schritt 62 berechnet, Danach wird die Summe der Produkte der Ableitungen in Schritt 64 aufsummiert. Dieser Prozeß des Aufsummierens der Summe der Produkte der Ableitungen wird fort gesetzt, bis in Schritt 66 alle Punkte der Abtastlinien A und B für diese Zelle fertig sind. An dieser Stelle bildet das aufsummierte Produkt der Ableitungen die Lagebewertungsgröße für diese einzelne Zelle. Die Lagebewertungsgröße wird dann im Schritt 68 im SRAM gespeichert.
  • Das Programm schreitet im Schritt 70 zu der nächsten Zelle in dem Speicherbereich fort. Der Prozeß des Berechnens von Lagebewertungsgrößen wird von Zelle zu Zelle fortgesetzt, bis in Schritt 72 das Ende des Bildbereiches detektiert und das Programm verlassen wird.
  • Der Prozeß des Berechnens einer Lagebewertungsgröße für eine Zelle ist in den Fign. 6A bis 6D veranschaulicht. In Fig. 6A sind die Abtastlinie A und die Abtastlinie B mit einem leichten Winkel über einem Teil eines Strichcode-Symbols gezeigt. Fig. 6B zeigt das Reflexionssignal mit ungefähr 1,5 Pixeln pro schmalem Strich für beide Abtastlinien A und B. Die Datenpunkte sind einfach durch gerade Linien miteinander verbunden. Fig. 6C zeigt das Ergebnis der Nehmens der Differenzen zwischen aufeinanderfolgenden Datenpunkten entlang der Abtastlinie A und aufeinanderfolgender Datenpunkte entlang der Abtastlinie B, um eine als Delta-Abtastlinie A bzw. Delta-Abtastlinie B gezeigte angenäherte Ableitung zu erzeugen. Fig. 6D zeigt das Produkt von jedem Datenpunkt entlang der Delta-Abtastlinie A und dem entsprechenden Datenpunkt entlang der Delta-Abtastlinie B. Somit ist in Fig. 6D jede Bewertungsgröße für jeden Datenpunkt das Produkt der angenäherten Ableitungen jedes entsprechenden Datenpunktes der Abtastlinie A und der Abtastlinie B. Das Aufsummieren der Summen der Produkte der Ableitungen erzeugt eine Lagebewertungsgröße gleich 810, was eine relativ große Bewertungsgröße ist, da die Abtastlinie A und die Abtastlinie B direkt durch ein Strichcodesymbol verlaufen.
  • Um die Fähigkeit des Lagefindungsalgorithmus zum Unterscheiden von Strichcodes von einfachen Übergängen zwischen schwarzen und weißen Bereichen zu veranschaulichen, geben die Fign. 7A bis 7D die entsprechende Lagebewertungsgröße für einen einfachen Schwarz-Weiß-Übergang an. Fig. 7A zeigt ein Bild mit einem Schwarz-Weiß-Übergang mit zwei darüberführenden Abtastlinien, mit Abtastlinie A und Abtastlinie B. Fig. 7B zeigt die Reflexionssignale für die Abtastlinie A und für die Abtastlinie B. Fig. 7C zeigt die angenäherten Ableitungen bzw. die Delta-Abtastlinie A und die Delta-Abtastlinie B, wohingegen Fig. 7D die Summe der Ableitungen für jeden Punkt auf beiden Abtastlinien A und B zeigt. Die resultierende Lagebewertungsgröße mit dem Wert gleich 57 aus Fig. 7D für das Bild in Fig. 7A ist bemerkenswert niedriger als die Lagebewertungsgröße mit dem Wert 810 für den Strichcode in Fig. 6A.
  • Das Programmablaufdiagramm für den digitalen Signalprozessor 38 in Fig. 2 ist in den Fign. 5A und 5B gezeigt. In Abhängigkeit von einem Eingangssignal am Anschluß 40 in Fig. 2 zum Initiieren des Lesens eines Strichcodes tritt der digitale Signalprozessor 38 in das Programm ein, wie in dem Ablaufdiagramm von Fig. 5A gezeigt. Der erste Schritt 74 dient zum Anweisen der ASIC-Steuerung, den Bildbereich in das DRAM aufzunehmen. Sobald der Bildbereich aufgenommen ist, dient der nächste Schritt 76 dazu, die ASIC-Steuerung anzuweisen, den Strichcode-Lagefindungsalgorithmus (in Übereinstimmung mit dem Ablaufdiagramm von Fig. 4 wie vorstehend erörtert) für eine Richtung, d.h. der horizontalen Richtung, auszuführen. Sobald der Lagebestimmungsalgorithmus für alle Zellen in der horizontalen Richtung im Bildbereich 48 ausgeführt ist, speichert die ASIC-Steuerung die Resultate im SRAM. Die Bewertungsgröße für jede Zelle ist eine Angabe der Wahrscheinlichkeit einer Strichcode-Aktivität. Die vollständige Menge von Bewertungs größen für eine gegebenen Richtung bildet eine Abbildung der wahrscheinlichen Bereiche der Strichcode-Aktivität. Dieser Prozeß wird für alle vier Richtungen wiederholt, d.h., Lagebewertungsgrößen für eine vertikale Abtastung werden durch die Programmschleife 80 berechnet und im SRAM abgespeichert; Lagebewertungsgrößen für eine Abtastung in aufsteigend diagonaler Richtung, d.h., für eine Abtastung mit einem Winkel von 45 Grad, werden durch die Programmschleife 82 berechnet und im SRAM abgespeichert; und Lagebewertungsgrößen für eine diagonale Abtastung in absteigender Richtung, d.h., für eine Abtastung im Winkel von 135 Grad, werden durch die Programmschleife 84 berechnet und im SRAM abgespeichert.
  • Sobald die Zellenaktivitäts-Bewertungsfünktion für eine bestimmte Richtung berechnet und im SRAM gespeichert ist, bestimmt das digitale Signalprozessorprogramm in Schritt 78, ob Strichcodeaktivität vorhanden ist oder nicht. Für diesen Zweck kann ein einfacher Schwellenwert genutzt werden, wobei alle Lagebewertungsgrößen untersucht werden, welche einen gegebenen Schwellenwert überschreiten. Wenn keine Bewertungsgröße einen vorgegebenen Schwellenwert überschreitet, ist keine Strichcodeaktivität gefunden worden, und das Programm wiederholt den Beginn von Schritt 74, in welchem die ASIC-Steuerung einen neuen Bildbereich in das DRAM aufnimmt. Wenn jedoch in Schritt 78 eine Strichcodeaktivität detektiert wird, schreitet das nachfolgende digitale Signalprozessorprogramm in Übereinstimmung mit dem in Fig. 5B gezeigten Ablaufdiagramm fort, den lokalisierten Strichcode auszurichten, zu filtern und abzutasten.
  • Der erste Schritt besteht darin, im Schritt 86 aus den im SRAM gespeicherten Lagebewertungsgrößen den Mittelpunkt des Bereiches der Strichcodeaktivität zu bestimmen und die wahrscheinliche horizontale und vertikale Ausdehnung einer derartigen Aktivität im Schritt 86 zu bestimmen. Der ungefähre Mittelpunkt und die Ausdehnung der Strichcodeaktivität können durch auf die Zellenaktivitäts-Bewertungsgrößenabbildung angewandtes Bereichswachstum bestimmt werden. Das Bereichswachs tum stellt eine übliche Bildverarbeitungsaufgabe dar, um einen bestimmten Bereich eines Gesamtbildes zu identifizieren, wobei der besondere Bereich eine spezifische Kenngröße, in diesem Fall große Werte, aufweist. Das Bereichswachstum ist eine dem Fachmann wohlbekannte Technik der Bildverarbeitung und ist offenbart in "Matrix Structured Image Processing" von Dougherty und Giardina, veröffentlicht im Jahre 1987 durch Prentice-Hall Inc., Englewood Cliffs, New Jersey 07632.
  • Nachdem der interessierende Bereich bestimmt worden ist, weist der digitale Signalprozessor die ASIC-Steuerung an, den Strichcode-Aktivitäten enthaltenden Bildbereich in Schritt 88 vom DRAM zum SRAM zu transferieren. Der SRAM-Speicherbereich ist im allgemeinen kleiner als der DRAM-Speicherbereich und repräsentiert typischerweise wenige Prozent des im DRAM gespeicherten gesamten Bildbereiches. Obgleich SRAM schneller als DRAM ist, ist der Gebrauch eines relativ kleineren SRAM wirtschaftlicher, da die Kosten von SRAM typischerweise höher sind als die von DRAM. Der Bereich des Bildes, der im SRAM gespeichert ist, kann auch einen Bezug zu der Größe der Zellenbereiche des DRAM-Bildspeichers aufweisen, muß aber nicht. Infolge der geringeren Größe des SRAM kann das letztere lediglich einen Teil eines Strichcodes aufnehmen, wobei in diesem Fall die Verarbeitungsschritte für Teilabtastungen wiederholt und die Teilabtastungen später zum Bilden einer vollständigen Abtastung kombiniert werden.
  • Sobald das Bild zum SRAM-Speicher transferiert ist, interpoliert der digitale Signalprozessor in Schritt 90 die Daten für jede der Abtastlinien für einen interessierenden gegebenen Bildbereich. Der Prozeß der Interpolation ist dem im Bereich der digitalen Signalverarbeitung beschlagenen Fachmann wohlvertraut und durch Peled und Liu in "Digital Signal Processing Theory, Design, and Implementation" beschrieben, veröffentlicht 1976 von John Wiley and Sons. Die Interpolation erhöht die effektive Abtastrate der Abtastliniendaten durch Einpassen der besten Kurve in die Daten mit Frequenzen unterhalb der Nyquist-Grenze.
  • Das Strichcodebild wird anfangs mit ungefähr 1,5 Pixeln pro schmalem Strich abgetastet. Um eine glattere Kurve zu erhalten, wird das Signal vierfach überabgetastet. Einfach ausgedrückt, werden zusätzliche Datenpunkte zwischen den tatsächlichen Datenpunkten hinzugefügt, um eine glattere Kurve zu erhalten, anstatt die Datenpunkte durch eine gerade Linie zu verbinden.
  • Nach dem Interpolieren jeder der Abtastlinien in Schritt 90 wird die erste Abtastlinie einer gegebenen Zelle mit aufeinanderfolgenden benachbarten interpolierten Abtastlinien einer Kreuzkorrelation unterworfen, wie in Schritt 92 angegeben. Die Kreuzkorrelation liefert ein Maß für die Ähnlichkeit oder das zueinander Passen von zwei Kurven. Techniken zum Kreuzkorrelieren zweier Signale sind dem Fachmann wohlbekannt, und eine Erörterung der Kreuzkorrelation kann gefünden werden in "Digital Processing of Speech Signals" von Rabiner und Schafer, veröffentlicht 1978 von Prentice Hall, Englewood Cliffs, NJ 07632.
  • Die aufeinanderfolgende Kreuzkorrelation zwischen aufeinanderfolgenden Abtastliniendaten liefert im Schritt 92 auch ein Mittel zum Bestimmen der Feinausrichtung des Strichcodesymbols. Die detektierte Feinorientierung des Strichcodes wird aus den Differenzen zwischen den gemittelten Peaks von aufeinanderfolgenden Kreuzkorrelationen zwischen benachbarten interpolierten Abtastlinien gewonnen. Die Position des Peaks der Kreuzkorrelationsfunktion von zwei Abtastlinien repräsentiert das Maß, um welches die Daten einer Abtastlinie verschoben werden müssen, um den besten Abgleich mit den Daten der anderen Abtastlinie zu erhalten. Die Berechnung des tatsächlichen Winkels der Striche wird untenstehend unter Bezugnahme auf die Fign. 9a bis 9c erörtert.
  • Nachdem die Feinorientierung des Strichcodes bekannt ist, werden die Daten jeder interpolierten Abtastlinie in Schritt 94 durch Verschieben übereinandergelegt. Nachdem die Daten der interpolierten Abtastlinien durch Verschieben übereinandergelegt sind, wird der Mittelwert aller Abtastlinien berechnet. An diesem Punkt kann das Strichcodesymbol in Schritt 94 in eine spezielle Strichcodeabtastung decodiert werden.
  • Die Strichcode-Teilabtastung wird in Schritt 94 abgespeichert, und in Schritt 96 wird der nächste gespeicherte Bereich von Interesse bestimmt. D.h., der nächste Bereich von Interesse, der wahrscheinlich ein Strichcodebild enthält, wird dann in Schritt 88 vom DRAM in das SRAM transferiert. Der Prozeß der Interpolation und Kreuzkorrelation wird wiederholt, bis eine andere, einen benachbarten Bildbereich von Interesse repräsentierende Strichcode-Teilabtastung gespeichert ist. Sobald alle der gespeicherten Bereiche, die Strichcode-Aktivitäten enthalten, abgetastet sind, werden die Teilabtastungen in Schritt 98 verkettet oder zum Bilden einer Gesamtabtastung verbunden. Schließlich wird in Schritt 98 die Ausgabeabtastung an einen Dekodierer weitergeleitet, der dem Fachmann bekannt ist, um die verkettete Strichcodeabtastung in eine Folge von alphanumerischen Zeichen umzuwandeln, die den Inhalt des Strichcodes repräsentieren.
  • Die Fign. 8A bis 8G sowie die Fign. 9A bis 9C veranschaulichen den Prozeß des Detektierens der Feinausrichtung, des Filterns und des Abtastens eines Strichcodes, der in einer gegebenen Zelle lokalisiert worden ist. Im einzelnen veranschaulicht Fig. 8A eine vertikale Zelle 52, die aus acht Abtastlinien, die über einen Teil eines Strichcodeetikettes 58 gelegt sind, besteht. Das schlechte Aussehen oder die Fleckigkeit der Striche ist tatsächlich repräsentativ für den Zustand zahlreicher in der Praxis vorgefündener gedruckter Strichcodeetiketten.
  • Fig. 8B zeigt die 32 Pixel der ersten Abtastlinie der Zelle 52, die durch gerade Linien miteinander verbunden sind. Fig. 8C zeigt die gleichen 32 Datenpunkte nach der Interpolation oder dem vierfachen Überabtasten. Fig. 8D zeigt eine überabgetastete Abtastlinie, und eine andere überabgetastete Abtastlinie, die vier Abtastlinien entfernt liegt. Es ist evident, daß es einen Offset zwischen den beiden Wellenformen gibt. Dieser Offset zeigt den Ausrichtungs-Offset der Striche an.
  • Obgleich der Offset in Fig. 8D erkennbar auftritt, ist es erforderlich, die Größe des Offset zu berechnen, d.h., den tatsächlichen Orientierungswinkel der Striche zu berechnen. Die Kreuzkorrelationsfunktion ist auch geeignet für diese Aufgabe.
  • Die Fign. 9A bis 9C veranschaulichen den Prozeß des Bestimmens der Feinorientierung des Strichcodesymbols. Fig. 9A zeigt die Kreuzkorrelationsfunktion der ersten und der zweiten Abtastlinie des abgetasteten Signals. Zu bemerken ist, daß die Spitze um ungefähr minus 1 zurückbleibt. Dies bedeutet, daß die Wellenform über eine Distanz von einer Abtastlinie zu der nächsten um einen überabgetasteten Pixel, oder um ein Viertel eines ursprünglichen Pixels, verschoben ist. Dies führt zu einer Strichcode-Steigung von einem Viertel oder 0,25, was gut übereinstimmt mit der gemessenen Steigung von ungefähr 14 Grad, da der Arcus Tangens von 0,25 nämlich 14,036 Grad entspricht.
  • Fig. 9B zeigt eine Familie von Kreuzkorrelationskurven. Jede Kurve ist das Resultat des Kreuzkorrelierens der ersten Abtastlinie mit einer darauffolgend weiter entfernten Abtastlinie. Es ist zu bemerken, daß die Spitzen extrem gleichmäßig um eins für jede Kurve weiterschreiten. Durch Verwendung von Interpolation ist es möglich, die Position eines Peaks in der Kreuzkorrelationsfünktion auf Bruchteils eines Pixels genau zu bestimmen. Fig. 9C ist ein Diagramm der Kreuzkorrelationsfunktion für jede Abtastlinie, verglichen mit der ersten Abtastlinie des gegebenen interessierenden Bereiches. Es ist zu bemerken, daß die berechneten Spitzenwerte fast perfekt entlang einer geraden Linie liegen, deren Steigung den Winkel der Feinorientierung des Strichcodesymbols darstellt. Im allgemeinen mögen nicht alle der Spitzenwerte auf einer geraden Linie liegen, wobei dann die mittlere Steigung herangezogen werden kann, um die Feinorientierung des Strichcodesymbols darzustellen.
  • Sobald die Feinorientierung der Striche bekannt ist, werden die Daten für jede der interpolierten Abtastlinien wie in Fig. 8E durch Verschieben übereinandergelegt, und der Mittelwert wird wie in Fig. 8F gezeigt genommen. Durch das Nehmen des Mittelwertes entsprechender Abtastpunkte von den verschobenen Linien von Daten interpolierter Abtastlinien wird ein einfacher Ansatz zum Filtern von Strichcodes geliefert. Die Mittelwertbildung filtert effektiv senkrecht zu der Orientierung des Strichcodes. Alternativ könnte der Medianwert jedes Datenpunktes verwendet werden, um den Effekt gelegentlich fehlender Stücke des Strichcode-Etikettes zu vermindern. D.h., ein weißer Fleck auf einem schwarzem Strich beeinflußt den Mediandatenwert weniger als den mittleren Datenwert. Ein anderer Ansatz besteht darin, ein gewichtetes Mittel basierend auf den Kreuzkorrelationsbewertungsgrößen zu verwenden, um eine bessere Zurückweisung schlecht korrelierter Daten von Abtastlinien vorzusehen. Im letzteren Fall zählen jene interpolierten Abtastlinien, die gut miteinander korrelieren, schwerer als im Mittel, während diejenigen interpolierten Abtastlinien, die schlecht kreuzkorrelieren, im Mittelwert entsprechend weniger gewichtig wären.
  • Wie hier verwendet, schließt "Verschieben" von Daten von Abtastlinien sowohl das tatsächliche Verschieben von Daten von Abtastlinien innerhalb des Bildspeichers als auch das virtuelle Verschieben von Daten von Abtastlinien durch den Gebrauch eines zu der Lage von aus dem Speicher extrahierten aufeinanderfolgenden Werten hinzuzuaddierenden Offsetvektors ein.
  • Es ist weiter zu bemerken, daß die Feinorientierung des Strichcodes durch Kreuzkorrelation von Daten von ausgewählten Paaren von Abtastlinien allein gewonnen werden kann, ohne Interpolation von Daten von Abtastlinien, falls es ausreichend Datenpunkte oder Pixel pro schmalem Strich gibt. Andernfalls wird Interpolation verwendet, um die zusätzlichen Datenpunkte zu erzeugen, damit die Kreuzkorrelation aussagefähig wird. Schließlich können beim Übereinanderschieben der Abtastlinien Daten aller aufeinanderfolgenden Abtastlinien auf eine einzige Bezugslinie korreliert werden, oder es können alternativ Daten aufeinanderfolgender Abtastlinien in Linienpaaren korreliert und nicht auf eine einzelne Abtastlinie bezogen werden.
  • Die aggregierte Wellenform in Fig. 8F wird dann in eine Binärwert- Wellenform, wie in Fig. 8G gezeigt, umgewandelt, wobei der Gesamtsignahnittelwert als binärer Schwellenwert verwendet wird. Der Nullpegel der Wellenform in Fig. 8B entspricht dem Schwarzwertpegel des Strichcodes in Fig. 8A, während der Eins-Pegel dem weißen Pegel entspricht.
  • Somit ist eine Teilabtastung des in Fig. 8A gezeigten Strichcodes entsprechend der Zelle 52 durchgeführt worden. Fig. 10 zeigt, wie aufeinanderfolgende Teilabtastungen 100, 102 und 104 zum Bilden einer vollständigen Abtastung des Strichcodes 58 verkettet werden können. Die Teilabtastungen überlappen einander, so daß keine Daten des Strichcodes verlorengehen. Die aufeinanderfolgenden Teilabtastungen werden in Schritten entlang einem Winkel der gemessenen Feinorientierung der Striche genommen. D.h., da die Feinorientierung der Striche 14 Grad beträgt, wird eine Treppe von Teilabtastungen entlang eines 14-Grad- Winkels von der Vertikale aufgebaut, um die Teilabtastungen zu gewinnen, die zu einer vollständigen Abtastung des Strichcodeetikettes verketten werden können.
  • Somit ist ein Strichcodeleser offenbart worden, der in der Lage ist, ein Strichcodesymbol in einer ungerichteten Art und Weise zu lesen, das irgendwo innerhalb des Gesichtsfeldes eines Bildbereiches enthalten ist. Obgleich die offenbarte Ausführungsform den Gebrauch einer Bereichsbildaufnahmevorrichtung vorschlagt, ist es einsichtig, daß eine lineare Bildaufnahmevorrichtung, wie sie bei einem sich bewegenden Förder band verwendet werden kann, auch verwendet werden kann.

Claims (22)

1. Verfahren zum Lesen eines Strichcodes, umfassend:
Aufnehmen (26) und Speichern (32) eines zweidimensionalen Abbildes, welches irgendwo innerhalb des zweidimensionalen Abbildes (Fig. 3A) ein Abbild eines Strichcodes enthält;
Verarbeiten (34, 38) des abgespeicherten zweidimensionalen Abbildes zum Bestimmen der Lage des Strichcode-Abbildes und zum Decodieren (23) des Strichcode-Abbildes,
dadurch gekennzeichnet, daß
das Verarbeiten zum Bestimmen der Lage des Strichcodes den Schritt des Abtastens des zweidimensionalen Abbildes in einer alle Richtungen berücksichtigenden Art und Weise (76, 80, 82, 84) und den Schritt des Vergleichens (Fig. 4) einander zugeordneter Punkte einer Funktion der Reflexions-Wellenformen von mindestens zwei parallelen Streckenabschnitten der Abtastung einschließt, um die Wahrscheinlichkeit, daß sich die Streckenabschnitte durch eine Gegend erstrecken, die ein Strichcode-Symbolabbild enthält, abzuschätzen.
2. Verfahren nach Anspruch 1, wobei der Vergleichungsschritt (Fig. 4) für jede Lagegegend aus einer Anzahl von Lagegegenden des zweidimensionalen Abbildes ausgeführt wird.
3. Verfahren nach Anspruch 2, wobei der Vergleichungsschritt (Fig. 4) für jede Lagegegend aus der Anzahl von Lagegegenden für einander zugeordnete parallele Streckenabschnitte ausgeführt wird, die sich in eine Anzahl von Richtungen erstrecken, um eine Angabe über die Ausrichtung eines innerhalb einer der Lagegegenden angeordneten Strichcode-Symbolabbildes zu erhalten.
4. Verfahren nach Anspruch 2 oder 3, wobei sich ein Strichcode- Abbild über eine Anzahl von Lagegegenden (Fig. 10) erstreckt, und wobei das Verfahren ferner den Schritt des Bestimmens, über welche Gegenden sich der Strichcode erstreckt, und des Verkettens einer Folge derartiger Gegenden zum Gewinnen des vollständigen Strichcodes für das Decodieren (Fig. 10) aufweist.
5. Verfahren nach Anspruch 1, wobei der Vergleichungsschritt für einander zugeordnete, sich in eine Vielzahl von Richtungen (Fig. 5A) erstreckende parallele Streckenabschnitte ausgeführt wird, um eine Angabe über die Ausrichtung eines durch den Vergleichungsschritt lokalisierten Strichcode-Symbols zu erhalten.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei der auf die zwei parallelen Streckenabschnitte angewandte Vergleichungsschritt (Fig. 4) aufweist:
Annähern (60) an eine Ableitung eines ersten Streckenabschnittes der parallelen Streckenabschnitte;
Annähern (60) an eine Ableitung eines zweiten Streckenabschnittes der parallelen Streckenabschnitte;
Multiplizieren (62) der Ableitung des ersten Streckenabschnittes und der Ableitung des zweiten Streckenabschnittes, um ein Produkt der Ableitung der ersten Abtastungslinie und der Ableitung der zweiten Abtastungslinie zu erhalten, und
Aufsummieren (64) der Summe der einander zugeordneten Produkte der Ableitung des ersten Streckenabschnittes und der Ableitung des zweiten Streckenabschnittes, um eine Bewertungsgröße der Lage (68) für die Gegend, durch die sich die Streckenabschnitte erstrecken, zu erhalten, wobei die Bewertungsgröße der Lage die relative Wahrscheinlichkeit repräsentiert, daß die Gegend ein Strichcode-Symbolabbild enthält.
7. Verfahren nach Anspruch 1 oder 2, ferner aufweisend das Untersuchen einer Gegend, in welcher ein Strichcode-Symbolabbild enthalten ist, um die Ausrichtung dieses Strichcode-Symbolabbildes zu bestimmen.
8. Verfahren nach Anspruch 3 oder 4, wobei die Ausrichtung eines Strichcode-Symbolabbildes ferner durch folgende Schritte bestimmt wird:
Interpolieren (90) eines ersten Streckenabschnittes von zwei parallelen Streckenabschnitten;
Interpolieren (90) eines zweiten Streckenabschnittes von zwei parallelen Streckenabschnitten;
Berechnen (92) einer Kreuzkorrelationsfunktion der Daten des interpolierten ersten Streckenabschnittes und der Daten des interpolierten zweiten Streckenabschnittes; und
Detektieren eines Peaks der Kreuzkorrelationsfunktion der Daten der interpolierten ersten und des zweiten Streckenabschnitte, wobei die Position des Peaks der Kreuzkorrelationsfunktion der Daten der interpolierten ersten und zweiten Streckenabschnitte der Ausrichtung des Strichcode-Symbolabbildes entspricht.
9. Verfahren nach Anspruch 7, ferner aufweisend:
Verschieben (94) der Daten des interpolierten zweiten Streckenabschnittes, um ihn so mit den Daten des ersten interpolierten Streckenabschnittes in Übereinstimmung mit dem detektierten Peak der Kreuzkorrelationsfünktion der Daten des interpolierten ersten Streckenabschnittes und des interpolierten zweiten Streckenabschnittes auszurichten.
10. Verfahren nach einem der Ansprüche 3 bis 9, ferner einschließend das Filtern (20) eines lokalisierten Strichcode-Symbolabbildes entlang einer im wesentlichen senkrecht zu der Orientierung des Strichcode-Symbolabbildes ausgerichteten Achse, wobei das Filtern (20) vor dem Decodieren des Strichcode-Symbolabbildes durchgeführt wird.
11. Verfahren nach einem der Ansprüche 3 bis 10, wobei das Decodieren des Strichcode-Symbolabbildes durch Abtasten (22) in einer Richtung, die im wesentlichen gleich der Ausrichtung des Strichcode-Symbolabbildes ist, durchgeführt wird.
12. Strichcode-Leser, aufweisend:
Eine Einrichtung (26, 32) zum Aufnehmen und Speichern eines zweidimensionalen Abbildes, welches irgendwo innerhalb des zweidimensionalen Abbildes (Fig. 3A) ein Abbild eines Strichcodes enthält, und
eine Einrichtung (34, 38, 23) zum Verarbeiten des gespeicherten zweidimensionalen Abbildes und zum Decodieren des Strichcode-Abbildes, wobei die Verarbeitungs- und Decodierungseinrichtung zum Lokalisieren des Strichcode-Abbildes innerhalb des zweidimensionalen Abbildes betreibbar ist,
dadurch gekennzeichnet, daß
die Verarbeitungs- und Decodierungseinrichtung aufweist:
Eine Einrichtung (34) zum Abtasten des gespeicherten zweidimensionalen Bildes in einer alle Richtungen berücksichtigenden Art und Weise; und
eine Einrichtung (34, Fig. 4) zum Vergleichen einander zugeordneter Punkte einer Funktion der Reflexions-Wellenformen von mindestens zwei parallelen Streckenabschnitten der Abtastung zum Abschätzen der Wahrscheinlichkeit, daß die Streckenabschnitte sich durch eine Gegend erstrecken, die ein Strichcode-Symbolabbild enthält.
13. Strichcode-Leser nach Anspruch 12, wobei die Vergleichereinrichtung (34) derart programmiert ist, so daß Punkte wie zuvor erwähnt in jeder der Lagegegenden aus einer Vielzahl von Lagegegenden in dem zweidimensionalen Abbild verglichen werden.
14. Strichcode-Leser nach Anspruch 13, wobei die Vergleichereinrichtung (34) derart programmiert ist, so daß Punkte wie zuvor erwähnt in jeder der Lagegegenden aus der Vielzahl von Lagegegenden für einander zugeordnete parallele Streckenabschnitte, die sich in eine Vielzahl von Richtungen erstrecken, verglichen werden, um eine Angabe der Ausrichtung eines innerhalb irgendeiner der Lagegegenden lokalisierten Strichcode-Symbolabbildes zu erhalten.
15. Strichcode-Leser nach Anspruch 13 oder 14, wobei ein Strichcode- Abbild sich über eine Vielzahl von Lagegegenden (Fig. 10) erstreckt, und ferner mit einer Einrichtung (39) zum Bestimmen, über welche Gegenden sich der Strichcode erstreckt, und zum Verketten einer Folge derartiger Gegenden zum Gewinnen des vollständigen Strichcodes für das Decodieren (Fig. 10).
16. Strichcode-Leser nach Anspruch 12, wobei die Vergleichereinrichtung derart programmiert ist, so daß Punkte wie zuvor erwähnt auf einander zugeordneten parallelen Streckenabschnitten, die sich in eine Vielzahl von Richtungen (Fig. 5A) erstrecken, verglichen werden, um eine Angabe über die Ausrichtung eines lokalisierten Strichcode-Symbolabbildes zu gewinnen.
17. Strichcode-Leser nach einem der Ansprüche 12 bis 16, wobei die Vergleichereinrichtung (34) derart programmiert ist, um, wie zuvor erwähnt, Punkte für zwei parallele Streckenabschnitte durch die folgenden Schritte zu vergleichen:
Annähern (60) an eine Ableitung eines ersten Streckenabschnittes der parallelen Streckenabschnitte;
Annähern (60) an eine Ableitung eines zweiten Streckenabschnittes der parallelen Streckenabschnitte;
Multiplizieren (62) der Ableitung des ersten Streckenabschnittes und der Ableitung des zweiten Streckenabschnittes, um ein Produkt der Ableitung der ersten Abtastungslinie und der Ableitung der zweiten Abtastungslinie zu erhalten, und
Aufsummieren (64) der Summe der einander zugeordneten Produkte der Ableitung des ersten Streckenabschnittes und der Ableitung des zweiten Streckenabschnittes, um eine Bewertungsgröße der Lage (68) für die Gegend, durch die sich die Streckenabschnitte erstrecken, zu erhalten, wobei die Bewertungsgröße der Lage die relative Wahrscheinlichkeit repräsentiert, daß die Gegend ein Strichcode-Symbolabbild enthält.
18. Strichcode-Leser nach Anspruch 12 oder 13, wobei die Verarbeitungseinrichtung (34) ferner eine Einrichtung (16) zum Untersuchen einer Gegend aufweist, in welcher ein Strichcode-Symbolabbild enthalten ist, um die Ausrichtung dieses Strichcode-Symbolabbildes zu bestimmen.
19. Strichcode-Leser nach Anspruch 14 oder 15, ferner mit einer Einrichtung (18), die programmiert ist, um die Lagebestimmung eines Strichcode-Symbolabbildes durch die Schritte durchzuführen:
Interpolieren (90) eines ersten Streckenabschnittes von zwei parallelen Streckenabschnitten;
Interpolieren (90) eines zweiten Streckenabschnittes von zwei parallelen Streckenabschnitten;
Berechnen (92) einer Kreuzkorrelationsfunktion der Daten des interpolierten ersten Streckenabschnittes und der Daten des interpolierten zweiten Streckenabschnittes; und
Detektieren eines Peaks der Kreuzkorrelationsfunktion der Daten der interpolierten ersten und des zweiten Streckenabschnitte, wobei die Position des Peaks der Kreuzkorrelationsfunktion der Daten der interpolierten ersten und zweiten Streckenabschnitte der Ausrichtung des Strichcode-Symbolabbildes entspricht.
20. Strichcode-Leser nach Anspruch 15, wobei die Einrichtung zum Durchführen einer Feinbestimmung eines Strichcode-Symbolabbildes ferner programmiert ist, um:
die Daten des interpolierten zweiten Streckenabschnittes so zu verschieben (94), um ihn so mit den Daten des interpolierten ersten Streckenabschnittes in Übereinstimmung mit dem detektierten Peak der Kreuzkorrelationsfunktion der Daten des interpolierten ersten Streckenabschnittes und des interpolierten zweiten Streckenabschnittes auszurichten.
21. Strichcode-Leser nach einem der Ansprüche 14 bis 20, ferner aufweisend eine Einrichtung (20) zum Filtern eines lokalisierten Strichcode-Symbolabbildes entlang einer im wesentlichen senkrecht zu der Ausrichtung des Strichcode-Symbolabbildes ausgerichteten Achse vor dem Decodieren des Strichcode-Symbolabbildes.
22. Strichcode-Leser nach einem der Ansprüche 14 bis 21, wobei die Verarbeitungs- und Decodierungseinrichtung (38, 23) zum Decodieren eines lokalisierten Strichcode-Symbolabbildes durch Abtasten (22) des lokalisierten Strichcode-Symbolabbildes in eine Richtung, die im wesentlichen diejenige Richtung des Strichcode-Symbolabbildes ist, betreibbar ist.
DE1991626811 1990-03-28 1991-03-28 Streifenkodeleser für alle Richtungen Expired - Lifetime DE69126811T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US50080290A 1990-03-28 1990-03-28

Publications (2)

Publication Number Publication Date
DE69126811D1 DE69126811D1 (de) 1997-08-21
DE69126811T2 true DE69126811T2 (de) 1998-02-19

Family

ID=23990999

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1991626811 Expired - Lifetime DE69126811T2 (de) 1990-03-28 1991-03-28 Streifenkodeleser für alle Richtungen

Country Status (3)

Country Link
EP (1) EP0449634B1 (de)
JP (1) JP2957726B2 (de)
DE (1) DE69126811T2 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5276315A (en) * 1992-05-14 1994-01-04 United Parcel Service Of America, Inc. Method and apparatus for processing low resolution images of degraded bar code symbols
US5487115A (en) * 1992-05-14 1996-01-23 United Parcel Service Method and apparatus for determining the fine angular orientation of bar code symbols in two-dimensional CCD images
US5438636A (en) * 1992-05-14 1995-08-01 United Parcel Service Of America, Inc. Apparatus for simultaneously convolving multiple digital binary images using a single convolver with a binary mask to determine pixel densities
US5748804A (en) * 1992-05-14 1998-05-05 United Parcel Service Of America, Inc. Method and apparatus for processing images with symbols with dense edges
US5329105A (en) * 1992-08-10 1994-07-12 United Parcel Service Of America, Inc. Method and apparatus for determining the width of elements of bar code symbols
US5343028A (en) * 1992-08-10 1994-08-30 United Parcel Service Of America, Inc. Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images
US5418862A (en) * 1992-08-10 1995-05-23 United Parcel Service Of America Method and apparatus for detecting artifact corners in two-dimensional images
GB9325439D0 (en) * 1993-12-13 1994-02-16 Ncr Int Inc Barcode reading method and apparatus
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
US5598007A (en) * 1994-03-21 1997-01-28 Intermec Corporation Symbology reader with fixed focus spotter beam
US5504367A (en) * 1994-03-21 1996-04-02 Intermec Corporation Symbology reader illumination system
US5541419A (en) * 1994-03-21 1996-07-30 Intermec Corporation Symbology reader wth reduced specular reflection
US5550364A (en) * 1994-03-21 1996-08-27 Intermec Corporation Method and apparatus for spotter beam formation using a partitioned optical element
US5438188A (en) * 1994-04-01 1995-08-01 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using information from previous scan lines
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
EP0764307B1 (de) * 1994-06-07 1998-08-12 United Parcel Service Of America, Inc. Verfahren und gerät zu dekodierung von zweidimensionalen zeichen im raumbereich
US5553084A (en) * 1995-01-06 1996-09-03 Intermec Corporation Error correction enhancement for code one and other machine-readable symbologies
DE19504912C2 (de) * 1995-02-15 1998-07-02 Leuze Electronic Gmbh & Co Verfahren und Vorrichtung zum Erkennen von Barcode-Symbolen
US5862267A (en) * 1995-12-11 1999-01-19 Intermec Ip Corp. Method and apparatus for locating data regions in stored images of symbols
US5811776A (en) * 1996-02-26 1998-09-22 Intermec Corporation Method and apparatus for accurately locating data regions in stored images of symbols
US5854478A (en) * 1996-10-11 1998-12-29 Intermec Ip Corp. Method and apparatus for reading machine-readable symbols having surface or optical distortions
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
EP0851375B1 (de) * 1996-12-30 2003-05-02 DATALOGIC S.p.A. Verfahren zum Lesen eines auf einem Objekt aufgebrachten Barkodes
US7268924B2 (en) 2001-01-22 2007-09-11 Hand Held Products, Inc. Optical reader having reduced parameter determination delay
US6895116B2 (en) * 2001-06-07 2005-05-17 Hewlett-Packard Development Company, L.P. Automatically extracting graphical bar codes
US6672510B2 (en) 2001-12-20 2004-01-06 Scannabar (3193519 Canada Inc.) Bar code arrangement for identifying positions along an axis
WO2011011051A2 (en) * 2009-07-20 2011-01-27 The Regents Of The University Of California, Santa Cruz Image-based barcode reader
US9218536B2 (en) * 2011-12-23 2015-12-22 Cognex Corporation Methods and apparatus for one-dimensional signal extraction
KR102107395B1 (ko) * 2013-08-28 2020-05-07 삼성전자주식회사 모바일 단말기 및 그의 코드 인식 방법
JP6162584B2 (ja) * 2013-11-21 2017-07-12 株式会社オプトエレクトロニクス 光学的情報読取装置の画像処理方法及び光学的情報読取装置
CN112800796B (zh) * 2019-11-14 2023-05-26 杭州海康机器人股份有限公司 读码方法和读码装置以及物流***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134272A (en) * 1988-07-13 1992-07-28 Matsushita Electric Industrial Co., Ltd. Image signal processing apparatus for bar code image signal
US4873426A (en) * 1988-08-03 1989-10-10 Image Business Systems Corporation Technique for reading bar codes

Also Published As

Publication number Publication date
EP0449634B1 (de) 1997-07-16
JPH04225486A (ja) 1992-08-14
EP0449634A3 (en) 1992-12-16
DE69126811D1 (de) 1997-08-21
EP0449634A2 (de) 1991-10-02
JP2957726B2 (ja) 1999-10-06

Similar Documents

Publication Publication Date Title
DE69126811T2 (de) Streifenkodeleser für alle Richtungen
DE69126231T2 (de) Leser für Strichkodierungen
DE69131216T2 (de) Lagebestimmung von Strichkodierungen
DE69716087T2 (de) System und verfahren zur bilderfassung mit hoher geschwindigkeit
DE69632635T2 (de) Verfahren und Apparat zur Volumenmessung eines Gegenstandes
US5296690A (en) System for locating and determining the orientation of bar codes in a two-dimensional image
DE69324095T2 (de) Verfahren und Vorrichtung zum Dedektieren von strichkodierten Symbolen mit Unterpixel-Interpolation
DE69323236T2 (de) Verfahren und Vorrichtung zur Verarbeitung eines zweidimensionalen, digitalen Bildes
DE69132985T2 (de) Leseeinrichtung, die fragmente eines kodes zu einem kompletten kode zusammenfügt
DE69629930T2 (de) Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes
DE69515481T2 (de) Verfahren und Vorrichtung zur Dekodierung eines zweidimensionalen Symboles im Raumbereich
DE68920617T2 (de) Artikel, Verfahren und System zur hexagonalen Datenkodierung.
DE69324079T2 (de) Verfahren und Vorrichtung zur Erfassung von Strichkoden
DE69131394T2 (de) Maschinenlesbares Zeichen mit Mehrfachauflösung
DE69328961T2 (de) Abtastvorrichtung zum rekonstruieren eines vollstaendigen codes aus abgetastetensegmenten
DE69310049T2 (de) Verfahren und Vorrichtung zum Auffinden einer Ecke einer Struktur in zweidimensionalen Bildern
DE69232088T2 (de) System und Verfahren zur Verschiebung einer Frequenz
DE60300476T2 (de) System zum Erkennen eines Barcodes
DE69709165T2 (de) Vorrichtung und verfahren zur dekodierung von streifencode-symbolen durch quotenanalyse der modulformate
DE69428655T2 (de) Streifencodelesevorrichtung
WO1999001841A1 (de) Messmarke und verfahren zur erkennung von messmarken sowie verfahren zur objektvermessung
EP0896290A2 (de) Verfahren und Vorrichtung zum Lesen eines aus einer vorgegebenen Anzahl von Codeelementen bestehenden Strichcodes
DE3783974T2 (de) Optischer buchstabenleser.
DE69637397T2 (de) Optischer Barcode Abtaster
DE69503807T2 (de) Strichcode-decodierung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition