DE10025332B4 - Verfahren zum Lesen eines zweidimensionalen Barcodes - Google Patents

Verfahren zum Lesen eines zweidimensionalen Barcodes Download PDF

Info

Publication number
DE10025332B4
DE10025332B4 DE10025332A DE10025332A DE10025332B4 DE 10025332 B4 DE10025332 B4 DE 10025332B4 DE 10025332 A DE10025332 A DE 10025332A DE 10025332 A DE10025332 A DE 10025332A DE 10025332 B4 DE10025332 B4 DE 10025332B4
Authority
DE
Germany
Prior art keywords
row
column
determined
predetermined
peaks
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 - Fee Related
Application number
DE10025332A
Other languages
English (en)
Other versions
DE10025332A1 (de
Inventor
Yue Ma
Junichi Kanai
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of DE10025332A1 publication Critical patent/DE10025332A1/de
Application granted granted Critical
Publication of DE10025332B4 publication Critical patent/DE10025332B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • 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
    • 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/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes

Landscapes

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

Abstract

Verfahren zum Decodieren von Information, die in einem zweidimensionalen Barcode gespeichert ist, der auf ein gedrucktes Medium gedruckt ist, mit den Schritten, daß:
ein zweidimensionaler Barcode abgetastet wird, um ein zweidimensionales Pixelfeld zu erzeugen, das den zweidimensionalen Barcode darstellt,
die Horizontalkantenzählung in jeder Pixelreihe in dem zweidimensionalen Pixelfeld bestimmt wird,
die Vertikalkantenzählung in jeder Pixelspalte in dem zweidimensionalen Pixelfeld bestimmt wird,
die Spaltenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Horizontalkantenzählungen ermittelt und dann eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird,
die Reihenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Vertikalkantenzählungen ermittelt und dann eine Reihenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird, und
Binärdaten ausgelesen werden, die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelt werden, um ein Signal zu erzeugen, das die codierte Information...

Description

  • Die Erfindung betrifft allgemein ein verbessertes Verfahren zum Lesen zweidimensionaler Barcodes, die in einem Bild gedruckt sind. Insbesondere sieht das erfindungsgemäße Verfahren zum Lesen zweidimensionaler Barcodes beim Lesen von Dokumenten eine verbesserte Leistungsfähigkeit vor, die vorher durch Faksimile übertragen worden sind, oder ein Rauschen ähnlich demjenigen aufweisen, das durch Faksimilegeräte bewirkt wird.
  • Eine übliche Technik zum Lesen unbearbeiteter Bits (d.h. logischer Bits, die entweder "1" oder "0" darstellen) in einem eindimensionalen Barcode besteht darin, eine horizontale Abtastzeile über den Barcode zu bewegen und Übergänge von Weiß nach Schwarz und von Schwarz nach Weiß zu detektieren. Diese Technik kann jedoch nicht direkt auf einen zweidimensionalen Barcode angewendet werden, der aus einem Feld von N Reihen und M Spalten logischer Bits besteht, da eine einzelne Abtastzeile nicht bestimmen kann, welche der N Reihen oder welche der M Spalten gelesen wird.
  • Es sind verschiedene Techniken dazu verwendet worden, um die logischen Bits aus einem zweidimensionalen Barcode zu lesen, die den Zusatz von Ausrichtungsmarkierungen und/oder Taktbits betreffen, die dazu verwen det werden, um die einzelnen Reihen und Spalten genau identifizieren zu können.
  • Ein Verfahren zum Lesen eines zweidimensionalen Barcodes, das keine Taktbits oder Ausrichtungsmarkierungen erfordert, um Reihen oder Spalten an logischen Bits zu identifizieren, ist in der US 5 862 270 A mit dem Titel "A Clock-Free Two-Dimensional Barcode and Method for Printing and Reading the Same" beschrieben, das dem Anmelder der vorliegenden Erfindung übertragen ist.
  • Wie in diesem Patent detaillierter beschrieben ist, arbeitet das darin beschriebene Verfahren zum Lesen der logischen Bits in einem zweidimensionalen Barcode anhand des Bitfeldes, das aus dem Abtastprozeß resultiert. Es werden alle horizontalen "Kanten" für jede Spalte des Pixelfeldes und alle vertikalen "Kanten" für jede Reihe identifiziert und dann gezählt, und anschließend werden horizontale und vertikale Histogramme (tatsächlich eindimensionale Felder) aus der Kantenzählung für jede Spalte bzw. für jede Reihe erzeugt. Jedes Feld wird dann überprüft, um die lokalen Minima zu bestimmen, die die Zentralzeilen für jede Spalte und Reihe darstellen, da in dem Zentrum einer Spalte oder Reihe wesentlich weniger Kanten als am Rand vorhanden sind. Da das System von vornherein Kenntnis besitzt, wie viele logische Bits sich in einer Spalte und in einer Reihe befinden (und somit, wie weit die Spalten- und Reihenzentralzeilen entfernt sein sollten), wird die Verarbeitung dieser eindimensionalen Felder dadurch verbessert, daß nur in bestimmten Bereichen nach lokalen Minima gesucht wird.
  • Jedoch kann das Verfahren des '270-Patentes beim Lesen eines zweidimensionalen Barcodes, der durch Faksimile übertragen worden ist, infolge einer Verzerrung des Barcodes, die durch horizontalen Zeilenabfall und horizontale Zeilenwiederholung während der Faksilmileübertragung des Dokumentes bewirkt wird, oder beim Lesen eines zweidimensionalen Barcodes auf Schwierigkeiten stoßen, der in entweder der horizontalen oder vertikalen Richtung ein Rauschen in Form einer gezogenen Linie enthält. Ein horizontaler Zeilenabfall bewirkt, wenn er an dem Punkt auf dem zu übertragenden Dokument auftritt, an dem der Barcode positioniert ist, daß die Höhe einer Reihe logischer Bits kleiner als die Höhe des Restes der Reihen in dem zweidimensionalen Barcode ist. Selbstverständlich kann, wie Fachleute erkennen werden, wenn der horizontale Zeilenabfall so groß ist, daß eine gesamte Reihe an logischen Bits gelöscht ist, keine Verarbeitung die gelöschten logischen Bits lesen, obwohl, wie in der US 5 862 270 A diskutiert ist, Fehlerkorrekturtechniken verwendet werden können, um die verlorenen Daten rückzugewinnen. Andererseits bewirkt eine horizontale Zeilenwiederholung, wenn sie an dem Punkt auf dem zu übertragenden Dokument auftritt, an dem der Barcode positioniert ist, daß die Höhe einer Reihe logischer Bits größer als die Höhe des Restes der Reihen und die Höhe einer anderen Reihe an logischen Bits kleiner als die Höhe des Restes der Reihen in dem zweidimensionalen Barcode ist. Das Rauschen in Form einer gezogenen Linie wird durch tatsächliches Markieren des Dokumentes beispielsweise mit einem Kugelschreiber bewirkt und kann zur Folge haben, daß eine einzelne Reihe oder Spalte logischer Bits als zwei separate Reihen oder Spalten an logischen Bits mit einer Höhe bzw. Breite erscheint, die kleiner als der Rest der Reihen oder Spalten ist.
  • Das Verfahren nach der US 5 862 270 A kann infolge einer Zeilenwiederholung oder Zeilenabfallverzerrung eine Reihenzentralzeile auslassen, eine Reihenzentralzeile hinzufügen oder beides, da beide Verzerrungstypen bewirken, daß die Zentralzeile für die verzerrte Reihe einen unvorhersagbaren Abstand von Reihe zu Reihe aufweist. In 1 ist ein Barcode 10 mit einem Zeilenabfall von vier Zeilen neben dem resultierenden Vertikalkantenhistogramm 20 gezeigt (Histogramme werden hier dazu verwendet, die Horizontal- (oder Spalten-) und Vertikal- (oder Reihen-) Kantenzählfelder graphisch darzustellen, die verarbeitet werden, um die Spalten- bzw. Reihenzentralzeilen anzuordnen). Die Reihenzentralzeilen 30 bis 60 und 80 sind durch das Verfahren nach der US 5 862 270 A bestimmt worden. Während die Reihenzentralzeilen 30, 40, 50 und 80 korrekt bestimmt worden sind, wurde die Zentralzeile 60 infolge des zusätzlichen lokalen Minimums unkorrekt bestimmt, das durch den Zeilenabfall bewirkt wurde, und ist somit zu nahe an der Zentralzeile 50. Zusätzlich wurde das lokale Minimum 70, das die richtige Zentralzeile für diese Reihe darstellt, ausgelassen, da es nicht in dem Bereich lag, der in bezug auf ein lokales Minimum überprüft wurde.
  • Es ist daher Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren zum Lesen eines taktfreien zweidimensionalen Barcodes zu schaffen, der auf ein gedrucktes Medium gedruckt ist und Verzerrungen aufweist.
  • Diese können durch die Faksimileübertragung des Dokumentes bewirkt werden, auf dem der Barcode gedruckt ist oder durch Linien bewirkt werden, die auf die Seite des Dokuments gezogen sind, auf der der Barcode gedruckt ist.
  • Die vorliegende Erfindung ist auf ein Verfahren zum Decodieren von Information gerichtet, die in einem zweidimensionalen Barcode gespeichert ist, der auf ein gedrucktes Medium gedruckt ist, wobei das Verfahren eine verbesserte Leistungsfähigkeit vorsieht, wenn der zu lesende Barcode eine durch Faksimileübertragung bewirkte Zeilenabfall- oder Zeilenwiederholungsverzerrung umfaßt. Es sind zwei Ausführungsformen der vorliegen den Erfindung offenbart. Bei beiden Ausführungsformen wird der zweidimensionale Barcode zunächst abgetastet, um ein zweidimensionales Pixelfeld zu erzeugen, das den zweidimensionalen Barcode darstellt. Anschließend wird die Anzahl an Horizontalkanten in jeder Spalte aus Pixeln in dem zweidimensionalen Pixelfeld bestimmt und in einem Horizontalkantenzählfeld gespeichert, und ebenso wird die Anzahl an Vertikalkanten in jeder Reihe aus Pixeln in dem zweidimensionalen Pixelfeld bestimmt und in einem Vertikalkantenzählfeld gespeichert. Jedes Feld wird dann verarbeitet, um die Zentralzeilen darin zu ermitteln, wobei die Überschneidung jeder Spalten- und Reihenzentralzeile die Position eines binären Datenbits darstellt, das in dem zweidimensionalen Barcode gespei chert ist. Die Zentralzeilen werden dann verwendet, um die Binärdaten aus dem abgetasteten zweidimensionalen Barcode herauszuziehen und damit ein Signal zu erzeugen, das der darin gespeicherten codierten Information entspricht.
  • Bei der ersten Ausführungsform werden die Horizontal- und Vertikalkantenzählfelder auf die gleiche Art und Weise verarbeitet, um die Spalten- bzw. Reihenzentralzeilen herauszuziehen. Insbesondere wird jedes der beiden Kantenzählfelder separat abgetastet, um die Zentralzeilen darin dadurch zu bestimmen, daß jedes aufeinanderfolgende Spitzenpaar in den Kantenzählungen ermittelt wird, wobei jede der Spitzen eine Größe aufweist, die größer als ein erster vorbestimmter Wert ist, und dann eine Zentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Spitzenpaar ermittelt wird, wobei jede der Zentralzeilen eine Größe aufweist, die kleiner als ein zweiter vorbestimmter Wert ist. Sobald beide Kantenzählfelder verarbeitet worden sind, werden die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelten Binärdaten gelesen, um ein Signal zu erzeugen, das die codierte Information in dem zweidimensionalen Barcode darstellt. Vorzugsweise muß jedes der aufeinanderfolgenden Spitzenpaare in dem Kantenzählfeld durch einen dritten vorbestimmten Wert getrennt sein. Zusätzlich wird der erste vorbestimmte Wert vorzugsweise um eine vorbestimmte Größe verringert, wenn eine zweite Spitze in einem Spitzenpaar in dem Kantenzählfeld von einer ersten Spitze um mehr als einen vierten vorbestimmten Wert getrennt ist, und die zweite Spitze wird anschließend unter Verwendung des verringerten ersten vorbestimmten Wertes erneut identifiziert.
  • Bei der zweiten Ausführungsform werden die Horizontal- und Vertikalkantenfelder zum Herausziehen der Zentralzeilen darin unterschiedlich verarbeitet, um die Anzahl aller Fehler, auf die gestoßen wird, wenn das Verfahren der ersten Ausführungsform verwendet wird, zu verringern. Da es wahrscheinlicher ist, daß eine Zeilenabfall- oder Zeilenwiederholungsverzerrung den Reihenzentralzeilenabstand anstatt den Spaltenzentralzeilenabstand beeinflußt, wird das Horizontalkantenfeld zuerst unter Verwendung des Verfahrens nach dem Stand der Technik (d.h. des in der US 5 862 270 A offenbarten Verfahrens) verarbeitet, bei dem die lokalen Minima, die die Spaltenzentralzeilen in den Horizontalkantenzählungen darstellen, ermittelt sind. Wenn die Anzahl der ermittelten Spaltenzentralzeilen mit dem erwarteten Wert übereinstimmt, fährt die Verarbeitung mit dem Vertikalkantenfeld fort. Wenn jedoch die Anzahl der ermittelten Spaltenzentralzeilen nicht gleich dem erwarteten Wert ist, werden die Spaltenzentralzeilen abwechselnd unter Verwendung des Verfahrens der ersten Ausführungsform bestimmt, bei dem jedes aufeinanderfolgende Spitzenpaar in den Horizontalkantenzählungen ermittelt wird, wobei jede der Spitzen eine Größe aufweist, die größer als ein erster vorbestimmter Wert ist, und dann eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Spitzenpaar ermittelt wird, wobei jede der Spaltenzentralzeilen eine Größe aufweist, die kleiner als ein zweiter vorbestimmter Wert ist. Das Vertikalkantenzählfeld wird anders verarbeitet, wobei zuerst das Verfahren der ersten Ausführungsform verwendet wird, bei dem die Reihenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Spitzenpaar in den Vertikalkantenzählungen ermittelt wird, wobei jede der Spitzen eine Größe aufweist, die größer als der erste vorbestimmte Wert ist, und dann eine Reihenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Spitzenpaar ermittelt wird, wobei jede der Reihenzentralzeilen eine Größe aufweist, die kleiner als ein zweiter vorbestimmter Wert ist. Wenn die Anzahl an Reihenzentralzeilen, die dadurch ermittelt sind, mit dem erwarteten Wert übereinstimmt, wird die Verarbeitung beendet und die codierte Information kann von dem abgetasteten Barcode gelesen werden. Wenn jedoch die Anzahl der ermittelten Reihenzentralzeilen um Eins größer als der erwartete Wert ist, wird die zusätzliche Zentralzeile ermittelt und gelöscht. Auch wird, wenn die Anzahl an ermittelten Reihenzentralzeilen um Eins kleiner als der erwartete Wert ist, die ausgelassene Zentralzeile ermittelt und eingesetzt. Zusätzlich werden, wenn die Anzahl von Reihenzentralzeilen um mehr als Eins größer als der erwartete Wert oder um mehr als Eins kleiner als der erwartete Wert ist, die Reihenzentralzeilen abwechselnd durch Ermitteln der lokalen Minima ermittelt, die die Reihenzentralzeilen in den Vertikalkantenzählungen darstellen. Sobald die Spalten- und Reihenzentralzeilen korrekt bestimmt worden sind, werden die Binärdaten, die an der Überschneidung jeder Reihenzentralzeile mit jeder Spaltenzentralzeile ermittelt sind, gelesen, um ein Signal zu erzeugen, das die codierte Information in dem zweidimensionalen Barcode darstellt.
  • Die obigen Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden durch die folgende detaillierte Beschreibung der gegenwärtig bevorzugten, veranschaulichenden Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die begleitenden Zeichnungen offensichtlicher, wobei:
  • 1 einen zweidimensionalen Barcode zeigt, der eine Zeilenabfallverzerrung aufweist, und das resultierende Histogramm von Vertikalkanten und berechneten Zentralzeilen für diesen Barcode,
  • 2 ein vertikales Kantenhistogramm eines zweidimensionalen Barcodes ist, das bestimmte Elemente darstellt, die bei einer ersten Ausführungsform der vorliegenden Erfindung verwendet sind und den Nullkreuzungsübergang, den minimalen Spitzenspalt und die maximale Talschwelle umfassen,
  • 3 ein vertikales Kantenhistogramm eines zweidimensionalen Barcodes ist, das zeigt, wie der adaptive Prozeß der ersten Ausführungsform arbeitet,
  • 4 ein Flußdiagramm ist, das den Betrieb der ersten Ausführungsform der vorliegenden Erfindung beschreibt,
  • 5 ein Flußdiagramm ist, das zeigt, wie Spaltenzentralzeilen bei der zweiten Ausführungsform der vorliegenden Erfindung berechnet werden,
  • 6 ein Flußdiagramm ist, das zeigt, wie Reihenzentralzeilen bei der zweiten Ausführungsform der vorliegenden Erfindung berechnet werden,
  • 7A einen zweidimensionalen Barcode mit Verzerrung und das resultierende Histogramm aus Vertikalkanten und berechneten Zentralzeilen für diesen Barcode einschließlich einer zusätzlichen Zentralzeile zeigt, und
  • 7B einen zweidimensionalen Barcode mit Zeilenabfallverzerrung zusammen mit dem resultierenden Histogramm aus Vertikalkanten und berechneten Zentralzeilen für diesen Barcode zeigt, nachdem die zusätzliche Zentralzeile bei einem Aspekt der zweiten Ausführungsform der vorliegenden Erfindung gelöscht worden ist,
  • 8 einen zweidimensionalen Barcode mit Verzerrung und das resultierende Histogramm aus Vertikalkanten und berechneten Zentralzeilen für diesen Barcode zeigt, wobei gezeigt ist, wie eine zusätzliche Zentralzeile bei einem anderen Aspekt der zweiten Ausführungsform der vorliegenden Erfindung eingesetzt wird.
  • Die vorliegende Erfindung stellt eine Verbesserung des Verfahrens zum Lesen eines zweidimensionalen Barcodes nach der US 5 862 270 A dar und sieht beim lesen von zweidimensionalen Barcodes verbesserte Ergebnisse vor, die eine Verzerrung umfassen, die durch die Übertragung des Dokumentes bewirkt wird, auf dem der Barcode gedruckt ist. Es sind zwei bevorzugte Ausführungsformen der vorliegenden Erfindung offenbart. Bei beiden Ausführungsformen werden zunächst eindimensionale Felder, die vertikale und horizontale Histogramme der Reihenkantenzählungen und Spaltenkantenzählungen darstellen, auf die gleiche Art und Weise erzeugt, wie in der US 5 862 270 A vollständig beschrieben ist. Die erste Ausführungsform analysiert die Kantenzählungen in den horizontalen und vertikalen Feldern separat, um die Spalten- bzw. Reihenzentralzeilen für die logischen Bits zu ermitteln, und sieht eine stark verbesserte Leistungsfähigkeit vor, wenn auf eine Zeilerabfall- oder Zeilenwiederholungsverzerrung gestoßen wird. Jedoch kann es im Vergleich zu dem Verfahren der US 5 862 270 A eine erhöhte Anzahl von Gesamtfehlern erzeugen. Somit verwendet die zweite Ausführungsform selektiv das Verfahren der ersten Ausführungsform oder das Verfahren nach der US 5 862 270 A und sieht in bezug auf sowohl eine Zeilenabfall- oder Zeilenwiederholungsverzerrung als auch den Gesamtfehler im Vergleich zu der ersten Ausführungsform der Erfindung eine verbesserte Leistungsfähigkeit vor.
  • Wie oben detaillierter beschrieben ist, bestimmt das Verfahren nach der US 5 862 270 A lokale Minima in Bereichen, in denen ein Auftreten von Zentralzeilen erwartet wird, um die Reihen- und Spaltenzentralzeilen in den Vertikal- bzw. Horizontalkantenhistogrammen zu finden. Bei der Verwendung des Verfahrens nach der US 5 862 270 A können sich Fehler ergeben, wenn der zweidimensionale Barcode eine Zeilenabfall- oder Zeilenwiederholungsverzerrung umfaßt, da dann die Zentralzeilen außerhalb des erwarteten Bereiches angeordnet sind. Um diese Fehler zu beseitigen, wird ein anderes Verfahren zur Analyse der Vertikal- und Horizontalkantenhistogrammfelder ausgeführt, das nacheinander jedes Feld abtastet, um jede der Spitzen in dem Kantenfeld zu identifizieren. Während dieses Abtastprozesses wird das Tal zwischen jedem aufeinanderfolgenden Spitzenpaar überprüft, um die Zentralzeilen dazwischen zu ermitteln.
  • In 2 ist ein Histogramm 100 gezeigt, das ein Kantenfeld (entweder horizontal oder vertikal) darstellt, das so verarbeitet wird, um die Zentralzeilen darin zu ermitteln. Bei dem Verfahren der ersten Ausführungsform besitzen Spitzen (beispielsweise Spitze 115) im allgemeinen einen Wert, der größer als ein minimaler Anfangsspitzenwert 140 ist, und werden bevorzugt durch Identifikation der Punkte ermittelt, an denen der Feldwert über den minimalen Anfangsspitzenwert 140 übergeht, obwohl Fachleute leicht erkennen, daß verschiedene andere Verfahren dazu verwendet werden können, die Spitzen innerhalb der Kantenfelder zu ermitteln. Insbesondere wird Spitze 115 bevorzugt durch Ermitteln eines Aufwärtskreuzungspunktes 110 (d.h. des lokalen Punktes, an dem das Feld von einem Wert, der kleiner als der minimale Anfangsspitzenwert 140 ist, zu einem Wert übergeht, der größer als der minimale Anfangsspitzenwert 140 ist) und eines Abwärtskreuzungspunktes 120 (d.h. des lokalen Punktes, an dem das Feld von einem Wert, der größer als der minimale Anfangsspitzenwert 140 ist, zu einem Wert übergeht, der kleiner als der minimale Anfangsspitzenwert 140 ist) identifiziert, während das durch das Histogramm 100 dargestellte Feld abgetastet wird.
  • Um zu verhindern, daß Brummrauschen die falsche Identifikation einer Spitze bewirkt, erfordert das Verfahren der ersten Ausführungsform vorzugsweise, daß der Spalt zwischen jedem aufeinanderfolgenden Paar an Spitzen (beispielsweise Spitzen 125 und 135) um einen vorbestimmten minimalen Spalt 130 (P_min) getrennt ist. Dieser Spalt wird als Abstand zwischen dem Abwärtskreuzungspunkt einer ersten Spitze (beispielsweise Punkt 103 von Spitze 125) und dem Aufwärtskreuzungspunkt einer zweiten Spitze (beispielsweise Punkt 108 von Spitze 135) berechnet und auf einen Wert eingestellt, der sicherstellt, daß Rauschen in dem Kantenfeld keine unkorrekte Identifikation einer Spitze in dem Kantenfeld bewirkt.
  • Um die lokale Zentralzeile zwischen jedem aufeinanderfolgenden Paar an Spitzen zu identifizieren, erfordert das Verfahren der ersten Ausführungsform vorzugsweise, daß zumindest ein Pixel (beispielsweise Pixel 145) in einem Talbereich (beispielsweise Bereich 105) zwischen dem identifizierten Paar an Spitzen (beispielsweise Spitzen 125 und 135) vorhanden ist und einen Wert aufweist, der kleiner als ein vorbestimmter maximaler Schwellenwert 150 ist, obwohl Fachleute leicht erkennen, daß verschiedene andere Verfahren dazu verwendet werden können, um die Zentralzeilen zwischen jedem identifizierten Spitzenpaar zu ermitteln. Ein Talbereich (beispielsweise Bereich 105) ist als ein Fenster aus vorzugsweise 3 Pixeln definiert, das durch Ermittlung deren Zentralpixels identifiziert wird, das als der Mittelpunkt zwischen dem Abwärtskreuzungspunkt von der ersten Spitze (beispielsweise Punkt 103) und der Aufwärtskreuzung von der nächsten Spitze (beispielsweise Punkt 108) definiert ist. Das die Zentralzeile identifizierende Pixel ist das Pixel in dem gültigen Talbereich mit dem niedrigsten Wert (ein gültiger Talbereich ist einer mit zumindest einem Pixel, das einen Wert aufweist, der kleiner als der maximale Schwellenwert 150 ist). Die Verwendung eines Fensters für den Talbereich beseitigt einen gewissen Anteil des Zackenrauschens, das in dem Feld vorhanden sein kann. Wenn beispielsweise ein enger Zacken in dem Mittelpunktpixel zwischen zwei Spitzen auftritt, kann der Wert an diesem Mittelpunktpixel die maximale Talschwelle überschreiten. Durch zusätzliche Untersuchung eines Pixels links und rechts von dem Mittelpunktpixel kann immer noch ein Pixel mit einem Wert, der niedriger als der maximale Schwellenwert 150 ist, gefunden werden und die lokale Zentralzeile kann immer noch detektiert werden.
  • Wie Fachleuten bekannt ist, kann die Anzahl von Pixeln in dem Fenster, das den Talbereich definiert, erhöht werden, um die Leistungsfähigkeit angesichts des Zackenrauschens weiter zu verbessern, jedoch bewirkt dies eine Erhöhung der Verarbeitungszeit.
  • Auf die oben genannte Art und Weise können die meisten der Spitzen in dem Histogramm 100 identifiziert werden. Jedoch ist, da die logischen Bits eines zweidimensionalen Barcodes vor der Erzeugung in Zufällszahlen umgewandelt werden, kein feststehendes Muster für die logischen Bits vorhanden und die Muster in den horizontalen und Vertikalkantenfeldern variieren von einem Barcode zu dem nächsten. Die Höhen der Spitzen in den Feldern variieren auch erheblich von einem Barcode zu einem anderen. Der Anfangsspitzenwert 140 wird durch Verwendung eines empirischen Prozesses erhalten, der sicherstellt, daß dieser bei einer Höhe eingestellt ist, die niedrig genug ist, um die Detektion des Großteils der Spitzen zu ermöglichen, aber nicht zu niedrig ist, daß er durch Rauschen erzeugte falsche Spitzen detektiert. Jedoch kann in manchen Fällen eine echte Spitze (beispielsweise Spitze 180) unter den Anfangsspitzenwert 140 fallen.
  • Wie in dem Histogramm 100 von 3 gezeigt ist, ist der Abstand 175 zwischen dem Abwärtskreuzungspunkt 185 der ersten Spitze 155 und dem Aufwärtskreuzungspunkt 195 der zweiten Spitze 165, wenn eine Spitze, wie beispielsweise eine Spitze 180, nicht identifiziert wird, größer, als ein vorbestimmter maximaler Wert, der den normalen Spitzenspalt darstellt. Um die vermißte Spitze zu identifizieren, wenn festgestellt wird, daß der Abstand zwischen zwei aufeinanderfolgenden Spitzen (berechnet als der Abstand zwischen dem Abwärtskreuzungspunkt einer ersten Spit ze und dem Aufwärtskreuzungspunkt einer zweiten Spitze) größer als dieser vorbestimmte maximale Wert ist, wird ein adaptiver Prozeß in dem Verfahren der ersten Ausführungsform verwendet, um einen adaptiven Bereich (d.h. den Bereich zwischen dem Abwärtskreuzungspunkt der ersten Spitze und dem Aufwärtskreuzungspunkt der zweiten Spitze) unter Verwendung eines neuen Schwellenwertes 160 weiter zu untersuchen, der kleiner als der Anfangsspitzenwert 140 ist, vorzugsweise 20 % kleiner. Bei der Untersuchung eines adaptiven Bereiches (beispielsweise Bereich 190) wird, wenn die zweite Spitze (beispielsweise Spitze 165) wiederum zu weit von der Anfangsspitze (beispielsweise Spitze 155) entfernt ist, ein weiter verringerter Schwellenwert 170 verwendet, der vorzugsweise 20 % kleiner als der Schwellenwert 160 ist. Vorzugsweise werden höchstens zwei Durchgänge in dem gleichen adaptiven Bereich versucht, bevor bestimmt wird, daß ein Fehlerzustand existiert, und daß der zweidimensionale Barcode als unlesbar zurückgewiesen werden muß. Dieser adaptive Prozeß ermöglicht, daß eine sehr niedrige Spitze (beispielsweise Spitze 180) detektiert werden kann. Wie Fachleute erkennen, ist der Betrag, um den die Schwelle pro Durchgang verringert wird, und die maximale Anzahl der Durchgänge konstruktionsbedingt und kann einen Kompromiß zwischen Genauigkeit und Verarbeitungszeit darstellen und so gewählt sein, um entweder die Genauigkeit oder die Verarbeitungszeit mit einer daraus resultierenden Verringerung des jeweils anderen Faktors zu optimieren. Die Spitzenschwelle wird auf ihren Anfangsspitzenwert 140 zurückgestellt und der normale Detektionsprozeß fährt fort, sobald eine vermißte Spitze in einem identifizierten adaptiven Bereich erfolgreich detektiert ist. Wenn nach dem Auffinden einer gültigen Spitze die Verarbeitung fortfährt, wird die erste Spitze dann als die gefundene gültige Spitze eingestellt, was sicherstellt, daß zwei oder mehr aufeinanderfolgende Spitzen, die Werte aufweisen, die kleiner als die Anfangsspitzenschwelle 140 sind, ermittelt werden können.
  • Die Anzahl von Zentralzeilen in jedem Histogramm ist vorzugsweise vordefiniert, wodurch es möglich wird, daß ein Validierungsschritt während der Verarbeitung des Feldes ausgeführt werden kann. Der zweidimensionale Barcode nach der US 5 862 270 A besteht vorzugsweise aus einem 20 × 20 Bit- Feld, und daher existiert beim Lesen dieses Barcodes, wenn die Gesamtanzahl von Zentralzeilen, die in jedem Feld gefunden wird, nicht gleich 20 ist, ein Fehlerzustand und der zweidimensionale Barcode muß als unlesbar zurückgewiesen werden.
  • Wie in 4 gezeigt ist, ist das Zentralzeilendetektionsverfahren der ersten Ausführungsform vorzugsweise in einer schriellen Einmalabtastprozedur ausgeführt, die die gesamte oben beschriebene Verarbeitung integriert. Das einzige Mal, daß ein Bereich in dem Feld nochmal abgetastet wird, ist, wenn die adaptive Schwellenbestimmung dazu verwendet wird, niedrige Spitzen zu detektieren. Genauer beginnt die Verarbeitung bei Schritt 200, bei dem der gegenwärtige Positionsindex auf den ersten Punkt in dem zu untersuchenden Feld eingestellt wird und der erste Kreuzungspunkt (d.h. crossp_1) auch auf den ersten Punkt in dem Feld eingestellt wird. Bei Schritt 205 wird der gegenwärtige Positionsindex erhöht und bei Schritt 210 wird der gegenwärtige Positionsindex überprüft, um zu sehen, ob das Ende des Feldes erreicht worden ist. Wenn es erreicht ist, endet die Verarbeitung bei Schritt 215. Wenn die Verarbeitung nicht vollständig ist, wird der Wert des Feldes an der gegenwärtigen Position bei Schritt 220 mit dem gegenwärtigen T_peak-Wert verglichen (der anfänglich auf den minimalen Anfangsspitzenwert 140 eingestellt ist, wie in den 2 und 3 ge zeigt ist). Wenn der Wert des Feldes an diesem Punkt kleiner oder gleich dem gegenwärtigen T_peak-Wert ist, kehrt die Verarbeitung zu Schritt 205 zurück, bei dem der gegenwärtige Positionsindex erneut erhöht wird. Wenn der Wert des Feldes an diesem Punkt größer als der gegenwärtige T_peak-Wert ist, fährt die Verarbeitung mit Schritt 225 fort, bei dem der Abstand zwischen dem gegenwärtigen Positionsindex und dem ersten Kreuzungspunkt mit dem P_normal-Wert verglichen wird, der den vorbe stimmten Spalt 130 darstellt, wie oben unter Bezugnahme auf 2 beschrieben ist.
  • Wenn der Abstand zwischen dem gegenwärtigen Positionsindex und dem ersten Kreuzungspunkt größer als der P_normal-Wert ist, wird bei Schritt 230 die adaptive Schwellenbestimmung begonnen, bei dem die gegenwärtige Position auf crossp_1 zurückgestellt wird und der T_peak-Wert um einen voreingestellten Prozentsatz verringert wird, vorzugsweise um 20 %, wie oben diskutiert ist. Danach kehrt die Verarbeitung zu Schritt 205 zur Untersuchung des vorher abgetasteten Abschnittes zurück, aber unter Verwendung des kleineren T_peak-Wertes. Schritt 230 führt auch die Anzahl der Iterationen für die adaptive Schwellenbestimmung aus, die auftreten, d.h. die Anzahl der Verringerungen von T_peak, und wenn sich bei Schritt 280 herausstellt, daß dies eine vorbestimmte Grenze, vorzugsweise zwei, wie oben unter Bezugnahme auf 3 diskutiert ist, überschreitet, wird davon ausgegangen, daß ein Fehler aufgetreten ist, und die Verarbeitung stoppt bei Schritt 270.
  • Wenn der Abstand zwischen dem gegenwärtigen Positionsindex und dem ersten Kreuzungspunkt kleiner oder gleich dem P_normal-Wert ist, fährt die Verarbeitung mit Schritt 240 fort, bei dem der Abstand zwischen dem gegenwärtigen Positionsindex und dem ersten Kreuzungspunkt mit dem minimalen vorbestimmten Spalt (d.h. P_min) verglichen wird, wie oben unter Bezugnahme auf 2 diskutiert ist.
  • Wenn bei Schritt 240 der Abstand zwischen dem gegenwärtigen Positionsindex und dem ersten Kreuzungspunkt kleiner oder gleich dem P_min-Wert ist, ist die zweite Spitze nicht gefunden worden und der erste Kreuzungspunkt crossp_1 wird bei Schritt 235 auf die gegenwärtige Indexposition zurückgestellt und die Verarbeitung kehrt zu Schritt 205 zurück, um mit der Suche nach der zweiten Spitze fortzufahren.
  • Wenn bei Schritt 240 der Abstand zwischen dem gegenwärtigen Positionsindex und dem ersten Kreuzungspunkt größer als der P_min-Wert ist, wird vermutet, daß die zweite Spitze gefunden worden ist. Wie unter Bezugnahme auf 2 beschrieben ist, ist der zweite Kreuzungspunkt ein Aufwärtskreuzungspunkt, wie beispielsweise Punkt 108 in 2. Der Mittelpunkt zwischen dem ersten Kreuzungspunkt crossp_1 und der gegenwärtigen Indexposition wird bei Schritt 245 identifiziert, wobei der gegenwärtige Indexpunkt hier den vermuteten zweiten Kreuzungspunkt darstellt. Bei Schritt 250 wird ein Talbereich, der den Feldwert an dem Mittelpunkt und die Feldwerte an den Punkten, die einen Index aufweisen, der um Eins größer und um Eins kleiner als der Mittelpunkt ist, identifiziert, und der Index des untersten dieser drei Werte wird als mögliche Zentralzeile gewählt. Der Wert an der möglichen Zentralzeile wird mit dem vorbestimmten maximalen Schwellenwert V_max (unter Bezugnahme auf 2 oben beschrieben) bei Schritt 255 verglichen.
  • Wenn bei Schritt 255 der Wert an der möglichen Zentralzeile kleiner als V_max ist, ist eine gültige Zentralzeile gefunden worden und deren Index wird bei Schritt 260 gespeichert. Bei Schritt 265 wird die Gesamtzahl von gefundenen Zentralzeilen mit einer vorbestimmten Anzahl, vorzugsweise 20, verglichen. Wenn die Anzahl an Zentralzeilen diese vorbestimmte Anzahl überschritten hat, ist ein Fehler aufgetreten, wobei bei Schritt 270 die Verarbeitung stoppt und ein Fehlersignal an den Hauptrechner geliefert wird. Wenn die Anzahl an Zentralzeilen kleiner oder gleich der vorbestimmten Anzahl von Zentralzeilen ist, fährt die Verarbeitung mit Schritt 275 fort, bei dem T_peak auf den Anfangswert zurückgestellt wird und fährt anschließend mit Schritt 235 fort, bei dem die gegenwärtige Indexposition auf crossp_1 eingestellt wird und fährt dann mit Schritt 205 fort, bei dem die Suche nach der nächsten Zentralzeile beginnt, wie oben diskutiert ist.
  • Wenn bei Schritt 255 der Wert an der möglichen Zentralzeile größer oder gleich V_max ist, dann ist eine gültige Zentralzeile nicht gefunden worden, die gegenwärtige Indexposition wird bei Schritt 235 auf crossp_1 eingestellt und die Verarbeitung fährt mit Schritt 205 fort, bei dem die Suche nach der nächsten gültigen Zentralzeile fortfährt, wie oben diskutiert ist. Dieser Prozeß fährt fort, bis das Ende des Feldes erreicht ist oder sich ein Fehlerzustand ergibt.
  • Es hat sich herausgestellt, daß das Verfahren der ersten Ausführungsform gegenüber dem Verfahren nach der US 5 862 270 A eine verbesserte Leistungsfähigkeit vorsieht, wenn es zum Lesen von Barcodes verwendet wird, die eine Zeilenabfallverzerrung aufweisen, die vier aufeinanderfolgende Zeilen beeinflußt. Es hat sich jedoch zusätzlich herausgestellt, daß, wenn Bar codes mit einer Zeilenwiederholungsverzerrung, die vier aufeinanderfolgende Zeilen beeinflußt, oder einer Zeilenabfall- oder Zeilenwiederholungsverzerrung, die zwei aufeinanderfolgende Zeilen beeinflußt, unter Verwendung des Verfahrens der ersten Ausführungsform gelesen wurden, die Gesamtanzahl der zurückgewiesenen Barcodes im Vergleich zu dem Verfahren nach der US 5 862 270 A erhöht war.
  • Aufgrund der erhöhten Anzahl von Fehlern, auf die bei Verwendung des Verfahrens der ersten Ausführungsform gestoßen wurde, wurde ein zweites Verfahren entwickelt, das abwechselnd das Verfahren nach der US 5 862 270 A oder das Verfahren der ersten Ausführungsform abhängig von den jeweiligen Umständen verwendet. Auf diese Art und Weise wird ein Verfahren erreicht, das die verbesserte Leistungsfähigkeit gegenüber dem Verfahren der ersten Ausführungsform beim Lesen von Barcodes mit Zeilenabfall- und/oder Zeilenwiederholungsverzerrung vorsieht und auch die niedrige Fehlerrate des Verfahrens nach der US 5 862 270 A vorsieht. Insbesondere hat dieses Verfahren die Tatsache zum Vorteil, daß eine Zeilenabfall- und/oder Zeilenwiederholungsverzerrung gewöhnlich bei einer Bewegung in einer vertikalen Richtung auftritt und verschiedene Stufen an die Horizontal- und Vertikalkantenfelder anlegt. Zusätzlich sieht das Verfahren der zweiten Ausführungsform vor, daß Zentralzeilen, vorzugsweise eine, eingesetzt oder gelöscht werden können, wenn sich herausgestellt hat, daß die Anzahl der Zentralzeilen kleiner als erwartet bzw. größer als erwartet ist.
  • Wie in dem Flußdiagramm von 5 gezeigt ist, wendet das Verfahren der zweiten Ausführungsform, da es nicht wahrscheinlich ist, daß eine Zeilenabfall- oder Zeilenwiederholungsverzerrung die Spalten des zweidimensio nalen Barcodes beeinflußt, zunächst das Verfahren nach der US 5 862 270 A bei Schritt 300 auf das Horizontalkantenfeld an. Wenn Schritt 305 bestimmt, daß die korrekte Anzahl an Spaltenzentralzeilen in dem Horizontalkantenfeld bei Schritt 300 detektiert wurde, bewegt sich die Verarbeitung zu der Detektion der Reihenzentralzeilen in dem Vertikalkantenfeld (Schritt 320), wie in Verbindung mit 6 unten beschrieben ist. Wenn die korrekte Anzahl an Spaltenzentralzeilen in dem Horizontalkantenfeld bei Schritt 300 nicht detektiert wurde, wird das Horizontalkantenfeld unter Verwendung des Verfahrens der ersten Ausführungsform bei Schritt 310 nochmals verarbeitet. Wenn sich herausgestellt hat, daß das Verfahren der ersten Ausführungsform bei Schritt 315 keine Fehler erzeugt hat (mitgeteilt durch Ermittlung der richtigen Anzahl an Spaltenzentralzeilen, die bei der bevorzugten Ausführungsform 20 ist), fährt die Verarbeitung mit der Detektion der Reihenzentralzeilen in dem Vertikalkantenfeld (Schritt 320) fort. Wenn das Verfahren der ersten Ausführungsform eine unkorrekte Anzahl an Zentralzeilen erzeugt, wird ein Fehler vermerkt und die Verarbeitung stoppt, wie bei Schritt 325 gezeigt ist.
  • Wie in dem Flußdiagramm von 6 gezeigt ist, wird das Verfahren der ersten Ausführungsform, da die Zeilenabfall-/Zeilenwiederholungsverzerrung am wahrscheinlichsten die Reihen des zweidimensionalen Barcodes beeinflußt, zunächst bei Schritt 350 auf das Vertikalkantenfeld angewendet. Wenn sich bei Schritt 360 herausstellt, daß das Verfahren der ersten Ausführungsform die richtige Anzahl von Reihenzentralzeilen erzeugt hat, die vorzugsweise 20 beträgt, ist der Leseprozeß vollständig, wie bei Schritt 400 gezeigt ist. Wenn jedoch die Anzahl an Reihenzentralzeilen unkorrekt ist, wird zunächst bestimmt, ob eine zusätzliche Zentralzeile (bei Schritt 365) oder eine Zentralzeile zu wenig (bei Schritt 380) vor handen ist. Wenn eine zusätzliche Zentralzeile existiert, fährt die Verarbeitung mit dem Zentralzeilenlöschschritt 370 fort, wie unten unter Bezugnahme auf die 7A und 7B detailliert diskutiert ist. Wenn eine Zentralzeile zu wenig vorhanden ist, fährt die Verarbeitung mit dem Zentralzeileneinsetzschritt 375 fort, der unten unter Bezugnahme auf 8 detailliert beschrieben ist. Wenn mehr als eine zusätzliche Zeile oder mehr als eine Zeile weniger vorhanden ist, fährt die Verarbeitung mit Schritt 385 fort, bei dem das Verfahren nach der US 5 862 270 A dazu verwendet wird, das Vertikalkantenfeld zu verarbeiten. Bei Beendigung entweder des Zentralzeilenlöschschrittes 370, des Zentralzeileneinsetzschrittes 375 oder des Schrittes 385 wird bestimmt, ob bei der Ausführung des gewählten Verfahrens bei Schritt 390 irgendwelche Fehler aufgetreten sind. Wenn keine Fehler aufgetreten sind, ist der Leseprozeß dollständig, wie bei Schritt 400 gezeigt ist. Wenn Fehler entdeckt wurden, wird ein Fehler vermerkt und die Verarbeitung stoppt, wie bei Schritt 395 gezeigt ist.
  • Obwohl das Verfahren der zweiten Ausführungsform unter Bezugnahme auf eine Orientierung des zweidimensionalen Barcodes diskutiert worden ist, ist es für Fachleute offensichtlich, daß das Verfahren dazu verwendet werden kann, zweidimensionale Barcodes zu lesen, die eine Zeilenabfall- oder Zeilenwiederholungsverzerrung in der vertikalen Richtung aufweisen, wie sie beispielsweise in einem Dokument auftritt, das in einem "Landschafts"-Modus anstelle eines "Portrait"-Modus übertragen ist, und zwar durch einfaches Umkehren der Verarbeitung, die in den 5 und 6 beschrieben ist, so daß die Verarbeitung von 5 auf das Vertikalkantenfeld und die Verarbeitung von 6 auf das Horizontalkantenfeld angewendet wird.
  • Da das Verfahren der ersten Ausführungsform keine Fehler verbreitet (dies bedeutet, daß nur die Zentralzeilen für Abschnitte des Barcodes, die eine Verzerrung aufweisen, durch die Verzerrung beeinflußt sind, und die Zentralzeilen für Abschnitte des Barcodes, die keine Verzerrung aufweisen, richtig ermittelt werden) ist es, wenn sich die Anzahl von Zentralzeilen, die unter Verwendung dieses Verfahrens ermittelt sind, nur um Eins von dem erwarteten Wert (d.h. 19 oder 21 bei der bevorzugten Ausführungsform) unterscheidet, möglich, das Vertikalkantenfeld weiter zu verarbeiten und entweder eine zusätzliche Reihenzentralzeile hinzuzufügen oder zu löschen.
  • Wie in dem Matrixcode 500 und dem zugehörigen Histogramm 505 von 7A gezeigt ist, ist, wenn eine zusätzliche Zentralzeile unter den Zentralzeilen 510 detektiert wird, am wahrscheinlichsten eine "falsche" Zentralzeile vorhanden. Ohne Verzerrung sind die ermittelten Zentralzeilen 510 gleichmäßig über das Kantenhistogramm 505 getrennt. Aufgrund dessen ist es somit sehr wahrscheinlich, daß die "falsche" Zentralzeile, beispielsweise Zentralzeile 525, zwischen zwei echten Zentralzeilen, beispielsweise Zentralzeilen 530 und 535, angeordnet ist. Folglich ist ein engerer Abstand zwischen der "falschen" Zentralzeile 525 und den beiden umgebenden Zentralzeilen 530 und 535 vorhanden. Die "falsche" Zentralzeile 525 wird dadurch identifiziert, daß zuerst der engste Zentralzeilenabstand 520 ermittelt wird und dann ein Löschbereich 515 hergestellt wird, der durch die beiden Zentralzeilen, beispielsweise Zentralzeilen 530, 540, benachbart der Zentralzeilen mit dem engsten Abstand, d.h. Zentralzeilen 525 und 535, gebildet wird. Danach wird der Löschbereich 515 durch Identifikation der lokalen Minima darin (auf die gleiche Weise, wie bei dem Verfahren nach der US 5 862 270 A ) erneut verarbeitet, um eine einzelne Zentralzeile darin zu ermitteln. 7B zeigt Zentralzeilen 550, die sich nach einer solchen Verarbeitung in dem Löschbereich 515 ergeben und eine neu ermittelte Zentralzeile 555 zwischen bereits existierenden Zentralzeilen 530 und 540 umfassen. Obwohl das bevorzugte Verfahren dieser Ausführungsform das Vertikalkantenfeld unter Verwendung des Verfahrens nach der US 5 862 270 A vollständig neu verarbeitet hat, wenn mehr als eine zusätzliche Zentralzeile gefunden wird (siehe Schritt 385 von 6), erkennen Fachleute, daß die obige Methodologie leicht ausgeweitet werden kann, um mehr als eine zusätzliche Zentralzeile zum Löschen durch Wiederholung desselben Prozesses ermittelt werden kann, sobald die erste Zentralzeile gelöscht ist.
  • In dem Matrixcode 600 und dem zugehörigen Histogramm 605 in 8 tritt eine ähnliche Situation bei dem oben diskutierten Zentralzeilenlöschschritt auf, wenn die Anzahl an detektierten Zentralzeilen 610 um Eins niedriger als erwartet ist. Die durchgezogenen Zentralzeilen 625, 630 und 635 stellen die Zentralzeilen dar, die tatsächlich in dem relevanten Bereich des Matrixcodes 600 detektiert sind. Der Bereich (beispielsweise Bereich 615), in den eine fehlende Zentralzeile fallen sollte, wird als zwischen zwei Zentralzeilen (beispielsweise Zentralzeilen 630 und 635) befindlich identifiziert, die die größte Trennung dazwischen aufweisen. Sobald der Bereich 615 identifiziert ist, wird die Zentralzeile durch Identifikation der lokalen Minima dann auf die gleiche Art und Weise ermittelt, wie bei dem Verfahren nach der US 5 862 270 A verwendet ist. Die ermittelte Zentralzeile 640 ist in 8 in gestrichelter Form gezeigt. Obwohl das bevorzugte Verfahren dieser Ausführungsform das Vertikalkantenfeld unter Verwendung des Verfahrens nach der US 5 862 270 A erneut verarbeitet, wenn mehr als eine Zentralzeile fehlt (siehe Schritt 385 von 6), erkennen Fachleute, daß die obige Methodologie leicht ausgeweitet werden kann, um mehr als eine Zentralzeile durch Wiederholung desselben Prozesses zu ermitteln, sobald die erste Zentralzeile eingesetzt ist.

Claims (16)

  1. Verfahren zum Decodieren von Information, die in einem zweidimensionalen Barcode gespeichert ist, der auf ein gedrucktes Medium gedruckt ist, mit den Schritten, daß: ein zweidimensionaler Barcode abgetastet wird, um ein zweidimensionales Pixelfeld zu erzeugen, das den zweidimensionalen Barcode darstellt, die Horizontalkantenzählung in jeder Pixelreihe in dem zweidimensionalen Pixelfeld bestimmt wird, die Vertikalkantenzählung in jeder Pixelspalte in dem zweidimensionalen Pixelfeld bestimmt wird, die Spaltenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Horizontalkantenzählungen ermittelt und dann eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird, die Reihenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Vertikalkantenzählungen ermittelt und dann eine Reihenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird, und Binärdaten ausgelesen werden, die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelt werden, um ein Signal zu erzeugen, das die codierte Information in dem zweidimensionalen Barcode darstellt.
  2. Verfahren nach Anspruch 1, wobei jede der Spitzen in den Horizontalkantenzählungen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist, und jede der Spitzen in den Vertikalkantenzählungen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist.
  3. Verfahren nach Anspruch 1, wobei jede der Spaltenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist, und jede der Reihenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist.
  4. Verfahren nach Anspruch 1, wobei jedes der aufeinanderfolgenden Paare an Spitzen in den Horizontalkantenzählungen um zumindest einen vorbestimmten Abstand getrennt ist, und jedes der aufeinanderfolgenden Paare an Spitzen in den Vertikalkantenzählungen um zumindest einen vorbestimmten Abstand getrennt ist.
  5. Verfahren nach Anspruch 1, wobei der Schritt zur Bestimmung der Spaltenzentralzeilen einen weiteren Schritt umfaßt, um die vorbestimmte Spitzenschwelle um eine vorbestimmte Größe zu verringern, wenn eine zweite Spitze in einem Paar von Spitzen in den Horizontalkantenzählungen von einer ersten Spitze um mehr als einen vorbestimmten Abstand getrennt ist, und anschließend die zweite Spitze unter Verwendung der verringerten vorbestimmten Spitzenschwelle erneut identifiziert wird, und der Schritt zur Bestimmung der Reihenzentralzeilen einen weiteren Schritt umfaßt, um die vorbestimmte Spitzenschwelle um eine vorbestimmte Größe zu verringern, wenn eine zweite Spitze in einem Spitzenpaar in den Vertikalkantenzählun gen von einer ersten Spitze um mehr als einen vorbestimmten Abstand getrennt ist, und dann die zweite Spitze unter Verwendung der verringerten vorbestimmten Spitzenschwelle erneut identifiziert wird.
  6. Verfahren zum Decodieren von Information, die in einem zweidimensionalen Barcode gespeichert ist, der auf einem gedruckten Medium gedruckt ist, mit den Schritten, daß: ein zweidimensionaler Barcode abgetastet wird, um ein zweidimensionales Pixelfeld zu erzeugen, das den zweidimensionalen Barcode darstellt, die Horizontalkantenzählung jeder Pixelreihe in dem zweidimensionalen Pixelfeld bestimmt wird, die Vertikalkantenzählung jeder Pixelspalte in dem zweidimensionalen Pixelfeld bestimmt wird, die Spaltenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Horizontalkantenzählungen ermittelt wird, wobei jede der Spitzen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist, und jedes der aufeinanderfolgenden Spitzenpaare um zumindest einen vorbestimmten Abstand getrennt ist, und dann eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Spitzenpaar ermittelt wird, wobei jede der Spaltenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist, die Reihenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Spitzenpaar in den Vertikalkantenzählungen ermittelt wird, wobei jede der Spitzen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist, und jedes der aufeinanderfolgenden Spitzenpaare um zumindest einen vorbestimmten Ab stand getrennt ist, und dann eine Reihenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Spitzenpaar ermittelt wird, wobei jede der Reihenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist, und Binärdaten ausgelesen werden, die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelt werden, um ein Signal zu erzeugen, das die codierte Information in dem zweidimensionalen Barcode darstellt.
  7. Verfahren zum Decodieren von Information, die in einem zweidimensionalen Barcode gespeichert ist, der auf einem gedruckten Medium gedruckt ist, mit den Schritten, daß: ein zweidimensionaler Barcode abgetastet wird, um ein zweidimensionales Pixelfeld zu erzeugen, das den zweidimensionalen Barcode darstellt, die Horizontalkantenzählung in jeder Pixelreihe in dem zweidimensionalen Pixelfeld bestimmt wird, die Vertikalkantenzählung in jeder Pixelspalte in dem zweidimensionalen Pixelfeld bestimmt wird, die Spaltenzentralzeilen durch die Schritte bestimmt werden, daß: die lokalen Minima ermittelt werden, die die Spaltenzentralzeilen in den Horizontalkantenzählungen darstellen, und die Anzahl der ermittelten Spaltenzentralzeilen mit einer vorbestimmten Anzahl verglichen wird, oder abwechselnd dazu, wenn die Anzahl an ermittelten Spaltenzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Spaltenzentralzeilen dadurch ermittelt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Horizontalkanten zählungen ermittelt und dann eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird, die Reihenzentralzeilen durch die Schritte bestimmt werden, daß: jedes aufeinanderfolgende Paar an Spitzen in den Vertikalkantenzählungen ermittelt wird, eine Reihenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird und dann die Anzahl der ermittelten Reihenzentralzeilen mit einer vorbestimmten Anzahl verglichen wird, oder abwechselnd dazu, wenn die Anzahl der ermittelten Reihenzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Reihenzentralzeilen durch Ermittlung der lokalen Minima ermittelt werden, die die Reihenzentralzeilen in den Vertikalkantenzählungen darstellen, Binärdaten ausgelesen werden, die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelt werden, um ein Signal zu erzeugen, das die codierte Information in dem zweidimensionalen Barcode darstellt.
  8. Verfahren nach Anspruch 7, wobei der Schritt zur Bestimmung der Reihenzentralzeilen anstatt des abwechselnden Ermittlungsschrittes ferner einen Schritt zum Ermitteln und Löschen einer zusätzlichen Zentralzeile umfaßt, wenn detektiert wird, daß die Anzahl von zuerst ermittelten Reihenzentralzeilen um Eins größer als die vorbestimmte Anzahl ist.
  9. Verfahren nach Anspruch 7, wobei der Schritt zur Bestimmung der Reihenzentralzeilen anstelle des abwechselnden Ermittlungsschrittes ferner einen Schritt zum Einsetzen einer zusätzlichen Zentralzeile umfaßt, wenn detektiert wird, daß die Anzahl der zuerst ermittelten Reihenzentralzeilen um Eins kleiner als die vorbestimmte Anzahl ist.
  10. Verfahren nach Anspruch 7, wobei jede der Spitzen in den Horizontalkantenzählungen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist und jede der Spitzen in den Vertikalkantenzählungen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist.
  11. Verfahren nach Anspruch 7, wobei jede der Spaltenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist, und jede der Reihenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist.
  12. Verfahren zum Decodieren von Information, die in einem zweidimensionalen Barcode gespeichert ist, der auf einem gedruckten Medium gedruckt ist, mit den Schritten, daß: ein zweidimensionaler Barcode abgetastet wird, um ein zweidimensionales Pixelfeld zu erzeugen, das den zweidimensionalen Barcode darstellt, die Horizontalkantenzählung in jeder Pixelreihe in dem zweidimensionalen Pixelfeld bestimmt wird, die Vertikalkantenzählung in jeder Pixelspalte in dem zweidimensionalen Pixelfeld bestimmt wird, die Reihenzentralzeilen durch die Schritte bestimmt werden, daß: die lokalen Minima ermittelt werden, die die Reihenzentralzeilen in den Vertikalkantenzählungen darstellen, und die Anzahl der ermittelten Reihenzentralzeilen mit einer vorbestimmten Anzahl verglichen wird, oder abwechselnd dazu, wenn die Anzahl der ermittelten Reihenzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Reihenzentralzeilen dadurch ermittelt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Vertikalkantenzählungen ermittelt und dann eine Reihenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird, wobei die Spaltenzentralzeilen durch die Schritte bestimmt werden, daß: jedes aufeinanderfolgende Paar an Spitzen in den Horizontalkantenzählungen ermittelt wird, eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Spitzenpaar ermittelt wird und dann die Anzahl von ermittelten Spaltenzentralzeilen mit einer vorbestimmten Anzahl verglichen wird, oder abwechselnd dazu, wenn die Anzahl an ermittelten Spaltenzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Spaltenzentralzeilen durch Ermitteln der lokalen Minima ermittelt werden, die die Reihenzentralzeilen in den Horizontalkantenzählungen darstellen, Binärdaten ausgelesen werden, die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelt werden, um ein Signal zu erzeugen, das die codierte Information in dem zweidimensionalen Barcode darstellt.
  13. Verfahren nach Anspruch 12, wobei der Schritt zur Bestimmung der Spaltenzentralzeilen anstelle des abwechselnden Ermittlungsschrittes ferner einen Schritt zum Ermitteln und Löschen einer zusätzlichen Zentralzeile umfaßt, wenn detektiert wird, daß die Anzahl der zuerst ermittelten Spaltenzentralzeilen um Eins größer als die vorbestimmte Anzahl ist.
  14. Verfahren nach Anspruch 12, wobei der Schritt zur Bestimmung der Spaltenzentralzeilen ferner anstelle des abwechselnden Ermittlungsschrittes ferner einen Schritt zum Einsetzen einer zusätzlichen Zentralzeile umfaßt, wenn detektiert wird, daß die Anzahl der zuerst ermittelten Spaltenzentralzeilen um Eins kleiner als die vorbestimmte Anzahl ist.
  15. Verfahren nach Anspruch 12, wobei jede der Spitzen in den Vertikalkantenzählungen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist, und jede der Spitzen in den Horizontalkantenzählungen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist.
  16. Verfahren nach Anspruch 12, wobei jede der Reihenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist, und jede der Spaltenzentralzeilen eine Größe aufweist, die kleiner als eine vorbestimmte Talschwelle ist.
DE10025332A 1999-05-25 2000-05-23 Verfahren zum Lesen eines zweidimensionalen Barcodes Expired - Fee Related DE10025332B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US318462 1981-11-05
US09/318,462 US6371373B1 (en) 1999-05-25 1999-05-25 Method for reading a two-dimensional barcode

Publications (2)

Publication Number Publication Date
DE10025332A1 DE10025332A1 (de) 2000-11-30
DE10025332B4 true DE10025332B4 (de) 2005-05-19

Family

ID=23238291

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10025332A Expired - Fee Related DE10025332B4 (de) 1999-05-25 2000-05-23 Verfahren zum Lesen eines zweidimensionalen Barcodes

Country Status (4)

Country Link
US (1) US6371373B1 (de)
JP (1) JP2001014418A (de)
DE (1) DE10025332B4 (de)
GB (1) GB2350462B (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020016750A1 (en) * 2000-06-20 2002-02-07 Olivier Attia System and method for scan-based input, storage and retrieval of information over an interactive communication network
US6601772B1 (en) * 2000-07-14 2003-08-05 Intellidot Corporation Compact matrix code and one-touch device and method for code reading
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
US7203361B1 (en) * 2001-03-16 2007-04-10 Hand Held Products, Inc. Adaptive digitizer for optical reader
KR100393423B1 (ko) * 2001-03-21 2003-08-02 김지영 2차원 바코드 정보 인식방법
CN100356399C (zh) * 2002-04-29 2007-12-19 武汉矽感科技有限公司 二维条形码码图印刷方法及解码方法
US7181066B1 (en) 2002-12-26 2007-02-20 Cognex Technology And Investment Corporation Method for locating bar codes and symbols in an image
US6988314B2 (en) * 2003-02-03 2006-01-24 Honda Giken Kogyo Kabushiki Kaisha Assembly, tolerance matching and post-manufacturing quality assurance method
JP4167097B2 (ja) * 2003-03-17 2008-10-15 株式会社沖データ 画像処理方法および画像処理装置
US7156311B2 (en) * 2003-07-16 2007-01-02 Scanbuy, Inc. System and method for decoding and analyzing barcodes using a mobile device
US7387250B2 (en) * 2003-12-04 2008-06-17 Scanbuy, Inc. System and method for on the spot purchasing by scanning barcodes from screens with a mobile device
US7296747B2 (en) * 2004-04-20 2007-11-20 Michael Rohs Visual code system for camera-equipped mobile devices and applications thereof
US20050246196A1 (en) * 2004-04-28 2005-11-03 Didier Frantz Real-time behavior monitoring system
US7309015B2 (en) * 2004-07-14 2007-12-18 Scanbuy, Inc. Mobile device gateway providing access to instant information
US20060027657A1 (en) * 2004-08-04 2006-02-09 Laurens Ninnink Method and apparatus for high resolution decoding of encoded symbols
DE102004063950B4 (de) * 2004-08-07 2009-02-19 Tropf, Hermann Kanalcodiervorrichtung
US8624970B2 (en) * 2004-08-10 2014-01-07 Thomas Krobath Method for displaying route information
US7175090B2 (en) * 2004-08-30 2007-02-13 Cognex Technology And Investment Corporation Methods and apparatus for reading bar code identifications
US7963448B2 (en) * 2004-12-22 2011-06-21 Cognex Technology And Investment Corporation Hand held machine vision method and apparatus
US9552506B1 (en) 2004-12-23 2017-01-24 Cognex Technology And Investment Llc Method and apparatus for industrial identification mark verification
CN100369059C (zh) * 2006-01-18 2008-02-13 冯文伦 一种矩阵式二维条码及其编码解码方法
US8016187B2 (en) * 2006-02-21 2011-09-13 Scanbury, Inc. Mobile payment system using barcode capture
US8150163B2 (en) * 2006-04-12 2012-04-03 Scanbuy, Inc. System and method for recovering image detail from multiple image frames in real-time
US8108176B2 (en) 2006-06-29 2012-01-31 Cognex Corporation Method and apparatus for verifying two dimensional mark quality
JP4240107B2 (ja) * 2006-10-27 2009-03-18 コニカミノルタビジネステクノロジーズ株式会社 領域判定方法、領域判定装置、画像処理装置、およびコンピュータプログラム
US8169478B2 (en) * 2006-12-14 2012-05-01 Cognex Corporation Method and apparatus for calibrating a mark verifier
US7852519B2 (en) 2007-02-05 2010-12-14 Hand Held Products, Inc. Dual-tasking decoder for improved symbol reading
US9734376B2 (en) 2007-11-13 2017-08-15 Cognex Corporation System and method for reading patterns using multiple image frames
US7980473B2 (en) * 2008-02-28 2011-07-19 Microsoft Corporation Camera based code reading
US8628015B2 (en) 2008-10-31 2014-01-14 Hand Held Products, Inc. Indicia reading terminal including frame quality evaluation processing
US8587595B2 (en) 2009-10-01 2013-11-19 Hand Held Products, Inc. Low power multi-core decoder system and method
CN102708349B (zh) * 2012-05-11 2014-11-05 深圳市天朗时代科技有限公司 一种矩阵式二维码的解码方法
JP5424369B1 (ja) * 2012-12-12 2014-02-26 Necインフロンティア株式会社 バーコードリーダ、バーコード読取り方法及びバーコード読取り用プログラム
DE102020130929A1 (de) * 2020-07-31 2022-02-03 Technische Universität Dortmund Verfahren und Vorrichtung zur Auswertung von Matrixcodes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862270A (en) * 1995-12-08 1999-01-19 Matsushita Electric Industrial Co., Ltd. Clock free two-dimensional barcode and method for printing and reading the same

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4356389A (en) * 1980-06-27 1982-10-26 Motorola Inc. Bar code scanner interface
US4447903A (en) 1981-05-22 1984-05-08 Ael Microtel, Ltd. Forward error correction using coding and redundant transmission
US4692603A (en) 1985-04-01 1987-09-08 Cauzin Systems, Incorporated Optical reader for printed bit-encoded data and method of reading same
US4782221A (en) 1985-04-01 1988-11-01 Cauzin Systems, Incorporated Printed data strip including bit-encoded information and scanner control
US4754127A (en) 1985-11-15 1988-06-28 Cauzin Systems, Incorporated Method and apparatus for transforming digitally encoded data into printed data strips
JPS62137974A (ja) 1985-12-12 1987-06-20 Ricoh Co Ltd 画像処理方式
JPS62219769A (ja) 1986-03-19 1987-09-28 Canon Inc 電子フアイリングシステム
JPS62219768A (ja) 1986-03-19 1987-09-28 Canon Inc 電子フアイリングシステム
US4736109A (en) 1986-08-13 1988-04-05 Bally Manufacturing Company Coded document and document reading system
US4924078A (en) 1987-11-25 1990-05-08 Sant Anselmo Carl Identification symbol, system and method
US5053609A (en) 1988-05-05 1991-10-01 International Data Matrix, Inc. Dynamically variable machine readable binary code and method for reading and producing thereof
US4939354A (en) 1988-05-05 1990-07-03 Datacode International, Inc. Dynamically variable machine readable binary code and method for reading and producing thereof
US5126542A (en) 1988-05-05 1992-06-30 International Data Matrix, Inc. Dynamically variable machine readable binary code and method for reading and producing thereof
US4988852A (en) 1988-07-05 1991-01-29 Teknekron Transportation Systems, Inc. Bar code reader
US4948955A (en) 1988-12-22 1990-08-14 The Boeing Company Barcode location determination
US5073954A (en) 1989-02-28 1991-12-17 Electrocom Automation, Inc. Bar code location and recognition processing system
US5153928A (en) 1989-06-09 1992-10-06 Casio Computer Co., Ltd. Method and apparatus for recording/reproducing mesh pattern data
US5065437A (en) 1989-12-08 1991-11-12 Xerox Corporation Identification and segmentation of finely textured and solid regions of binary images
US5083214A (en) 1990-05-02 1992-01-21 Eastman Kodak Company Apparatus and methods for extracting data from a scanned bit-mapped data strip
US5060980A (en) 1990-05-30 1991-10-29 Xerox Corporation Form utilizing encoded indications for form field processing
US5241166A (en) 1990-07-02 1993-08-31 Chandler Donald G Low resolution target acquisition
US5168147A (en) 1990-07-31 1992-12-01 Xerox Corporation Binary image processing for decoding self-clocking glyph shape codes
US5128525A (en) 1990-07-31 1992-07-07 Xerox Corporation Convolution filtering for decoding self-clocking glyph shape codes
US5091966A (en) 1990-07-31 1992-02-25 Xerox Corporation Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes
US5051779A (en) 1990-10-10 1991-09-24 Fuji Xerox Co., Ltd. Job control sheet for image processing system
US5189292A (en) 1990-10-30 1993-02-23 Omniplanar, Inc. Finder pattern for optically encoded machine readable symbols
US5296690A (en) 1991-03-28 1994-03-22 Omniplanar, Inc. System for locating and determining the orientation of bar codes in a two-dimensional image
US5262623A (en) 1991-09-04 1993-11-16 Omniplanar, Inc. Method and apparatus for distinguishing a preferred bar code or the like
AU3058292A (en) 1991-10-30 1993-06-07 Computer Based Controls, Inc. Financial document dispensing apparatus and method
US5245165A (en) 1991-12-27 1993-09-14 Xerox Corporation Self-clocking glyph code for encoding dual bit digital values robustly
US5221833A (en) 1991-12-27 1993-06-22 Xerox Corporation Methods and means for reducing bit error rates in reading self-clocking glyph codes
US5734152A (en) * 1995-05-31 1998-03-31 Symbol Technologies, Inc. Optical scanners and signal processors therefor
JPH05290197A (ja) 1992-04-06 1993-11-05 Teiriyou Sangyo Kk 二次元コ−ドシンボルマ−クの解読方法
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
JP3187936B2 (ja) 1992-05-29 2001-07-16 オリンパス光学工業株式会社 バーコード読取装置
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
US5801848A (en) 1993-01-06 1998-09-01 Fontech Ltd. Process for transmitting and/or storing information
US5352878A (en) 1993-01-29 1994-10-04 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using independent bar and space analysis
US5404003A (en) 1993-02-01 1995-04-04 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using byte-based searching
JPH06292007A (ja) * 1993-03-31 1994-10-18 Minolta Camera Co Ltd 画像処理装置および画像読取り装置
US5337362A (en) 1993-04-15 1994-08-09 Ricoh Corporation Method and apparatus for placing data onto plain paper
US5304787A (en) 1993-06-01 1994-04-19 Metamedia Corporation Locating 2-D bar codes
JP2835274B2 (ja) 1994-02-24 1998-12-14 株式会社テック 画像認識装置
US6082619A (en) * 1998-12-16 2000-07-04 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862270A (en) * 1995-12-08 1999-01-19 Matsushita Electric Industrial Co., Ltd. Clock free two-dimensional barcode and method for printing and reading the same

Also Published As

Publication number Publication date
GB2350462B (en) 2003-05-14
US6371373B1 (en) 2002-04-16
GB2350462A (en) 2000-11-29
DE10025332A1 (de) 2000-11-30
JP2001014418A (ja) 2001-01-19
GB0012711D0 (en) 2000-07-19

Similar Documents

Publication Publication Date Title
DE10025332B4 (de) Verfahren zum Lesen eines zweidimensionalen Barcodes
DE3716787C2 (de)
DE19960555B4 (de) Verfahren zum Auffinden und Lesen eines zweidimensionalen Strichcodes
DE10036110B4 (de) Verfahren zur Bestimmung des Schrägwinkels eines zweidimensionalen Barcodes
DE69332771T2 (de) Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen
EP1260933B1 (de) Verfahren zum Erfassen von zweidimensionalen Codes
DE69721941T2 (de) Gerät und Verfahren zum Extrahieren von Mustern
DE3633743C2 (de)
DE69728482T2 (de) Zweidimensionaler Codeleser
DE69835358T2 (de) Verfahren zur Korrektur der Verzerrung beim Abtasten eines optischen Codes
DE3926327C2 (de) Verfahren und System zum Erkennen von Zeichen auf einem Medium
DE4005492C2 (de) Bildcodierverfahren
DE3632832A1 (de) Zeichenerkennungssystem
DE19624900A1 (de) Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-Schaltkreises
DE3538639A1 (de) Bildverarbeitungssystem
DE2540101A1 (de) Automatisches zeichenerkennungs- system
DE3322443A1 (de) Mustererkennungsvorrichtung
DE19711873C2 (de) Verfahren und Vorrichtung zum Lesen eines Strichcodes
DE3241673A1 (de) Verfahren zum verdichten von daten eines zwei-wert-bildes
WO1992006448A1 (de) Verfahren zur extrahierung von einzelzeichen aus rasterbildvorlagen einer gelesenen hand- oder maschinenschriftlichen zeichenfolge freier teilung
DE69732508T2 (de) Laser-Strichcodeleser für einen Brennstab in einem Siedewasserkernreaktor
EP0767441B1 (de) Verfahren und Vorrichtung zum Lesen eines Strichkodes
DE19534009C2 (de) Verfahren zum Lesen von sehr schnell an der Lesevorrichtung vorbeibewegten Barcodes
DE2754230A1 (de) Anordnung zur codierten darstellung von daten
EP4287066A1 (de) Bestimmen der modulgrösse eines optischen codes

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: VOSSIUS & PARTNER, 81675 MUENCHEN

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee