DE10025332A1 - Verfahren zum Lesen eines zweidimensionalen Barcodes - Google Patents

Verfahren zum Lesen eines zweidimensionalen Barcodes

Info

Publication number
DE10025332A1
DE10025332A1 DE10025332A DE10025332A DE10025332A1 DE 10025332 A1 DE10025332 A1 DE 10025332A1 DE 10025332 A DE10025332 A DE 10025332A DE 10025332 A DE10025332 A DE 10025332A DE 10025332 A1 DE10025332 A1 DE 10025332A1
Authority
DE
Germany
Prior art keywords
row
determined
central
peaks
rows
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.)
Granted
Application number
DE10025332A
Other languages
English (en)
Other versions
DE10025332B4 (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

Es sind zwei Ausführungsformen eines Verfahrens zur Decodierung von Information vorgesehen, die in einem zweidimensionalen Barcode gespeichert ist, der auf einem gedruckten Medium gedruckt ist. Beide Ausführungsformen bilden ein verbessertes Verfahren zur Analyse von Horizontal- und Vertikalkantenzählfeldern, um die Spalten- und Reihenzentralzeilen darin zu identifizieren und das nachfolgende Lesen der Binärdaten zu ermöglichen, die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelt werden. Bei der ersten Ausführungsform werden die Zentralzeilen dadurch ermittelt, daß zunächst jedes aufeinanderfolgende Paar an Spitzen in dem jeweiligen Kantenzählfeld ermittelt wird, wobei jede Spitze eine Größe aufweisen muß, die größer als ein erster vorbestimmter Wert ist, und dann eine Zentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird, wobei jede der Zentralzeilen eine Größe aufweist, die kleiner als ein zweiter vorbestimmter Wert ist. Vorzugsweise wird jedes aufeinanderfolgende Paar an Spitzen in dem jeweiligen Kantenzählfeld um einen dritten vorbestimmten Wert getrennt. Zusätzlich wird der erste vorbestimmte Wert vorzugsweise um eine vorbestimmte Größe verringert, wenn eine zweite Spitze in einem Paar an Spitzen in dem jeweiligen Kantenzählfeld von einer ersten Spitze um mehr als einen vierten vorbestimmten Wert getrennt ist, und die zweite Spitze wird dann unter Verwendung des verringerten ersten ...

Description

Gebiet der Erfindung
Die Erfindung betrifft allgemein ein verbessertes Verfahren zum Lesen zweidimensionaler Barcodes, die in einem Bild gedruckt sind. Insbesonde­ re 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 Rau­ schen ähnlich demjenigen aufweisen, das durch Faksimilegeräte bewirkt wird.
Hintergrund der Erfindung
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 zweidimen­ sionalen 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 dem U.S. Patent Nr. 5,862,270 ("dem '270-Patent") mit dem Titel "A Clock-Free Two- Dimensional Barcode and Method for Printing and Reading the Same" be­ schrieben, das dem Anmelder der vorliegenden Erfindung übertragen ist. Die Inhalte des '270-Patentes sind hier explizit durch Bezugnahme einge­ schlossen. Wie in dem '270-Patent detaillierter beschrieben ist, arbeitet das darin beschriebene Verfahren zum Lesen der logischen Bits in einem zweidimensionalen Barcode anhand des Bitfeldes, das aus dem Abtastpro­ zeß resultiert. Es werden alle horizontalen "Kanten" für jede Spalte des Pi­ xelfeldes 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 wesent­ lich 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 Reihen­ zentralzeilen entfernt sein sollten), wird die Verarbeitung dieser eindimen­ sionalen Felder dadurch verbessert, daß nur in bestimmten Bereichen nach lokalen Minima gesucht wird.
Jedoch kann das Verfahren des '270-Patentes beim Lesen eines zweidi­ mensionalen 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 Bar­ codes 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 Verar­ beitung die gelöschten logischen Bits lesen, obwohl, wie in dem '270- Patent diskutiert ist, Fehlerkorrekturtechniken verwendet werden können, um die verlorenen Daten rückzugewinnen. Andererseits bewirkt eine hori­ zontale Zeilenwiederholung, wenn sie an dem Punkt auf dem zu übertra­ genden 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 Rau­ schen 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 des '270-Patentes kann infolge einer Zeilenwiederholung oder Zeilenabfallverzerrung eine Reihenzentralzeile auslassen, eine Rei­ henzentralzeile hinzufügen oder beides, da beide Verzerrungstypen bewir­ ken, daß die Zentralzeile für die verzerrte Reihe einen unvorhersagbaren Abstand von Reihe zu Reihe aufweist. In Fig. 1 ist ein Barcode 10 mit ei­ nem Zeilenabfall von vier Zeilen neben dem resultierenden Vertikalkan­ tenhistogramm 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. Rei­ henzentralzeilen anzuordnen). Die Reihenzentralzeilen 30 bis 60 und 80 sind durch das Verfahren des '270-Patentes 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 un­ korrekt bestimmt, das durch den Zeilenabfall bewirkt wurde, und ist so­ mit 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 über­ prüft wurde.
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren zum Lesen eines taktfreien zweidimensionalen Barcodes zu schaffen, der auf ein gedrucktes Medium gedruckt ist.
Es ist eine zusätzliche Aufgabe dieser Erfindung, ein Verfahren zum Lesen eines taktfreien zweidimensionalen Barcodes zu schaffen, der eine Verzer­ rung umfaßt, die durch die Faksimileübertragung des Dokumentes be­ wirkt wurde, auf dem der Barcode gedruckt ist.
Es ist eine noch weitere Aufgabe dieser Erfindung, ein Verfahren zum Le­ sen eines taktfreien zweidimensionalen Barcodes zu schaffen, der eine Verzerrung umfaßt, die durch Linien bewirkt wird, die auf die Seite des Dokuments gezogen sind, auf der der Barcode gedruckt ist.
Verschiedene andere Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung werden aus der nachfolgenden detaillierten Beschreibung und den angefügten Ansprüchen offensichtlich.
Zusammenfassung
Die vorliegende Erfindung ist auf ein Verfahren zum Decodieren von In­ formation 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 Zeilenwiederho­ lungsverzerrung umfaßt. Es sind zwei Ausführungsformen der vorliegen­ den Erfindung offenbart. Bei beiden Ausführungsformen wird der zweidi­ mensionale Barcode zunächst abgetastet, um ein zweidimensionales Pi­ xelfeld zu erzeugen, das den zweidimensionalen Barcode darstellt. An­ schließend wird die Anzahl an Horizontalkanten in jeder Spalte aus Pixeln in dem zweidimensionalen Pixelfeld bestimmt und in einem Horizontal­ kantenzä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 Über­ schneidung 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 In­ formation entspricht.
Bei der ersten Ausführungsform werden die Horizontal- und Vertikalkan­ tenzä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 auf­ weist, 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 auf­ weist, die kleiner als ein zweiter vorbestimmter Wert ist. Sobald beide Kantenzählfelder verarbeitet worden sind, werden die an der Überschnei­ dung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelten Binär­ daten 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 vorbe­ stimmte 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 verringer­ ten ersten vorbestimmten Wertes erneut identifiziert.
Bei der zweiten Ausführungsform werden die Horizontal- und Vertikal­ kantenfelder 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 Zeilenwiederholungs­ verzerrung den Reihenzentralzeilenabstand anstatt den Spaltenzentralzei­ lenabstand beeinflußt, wird das Horizontalkantenfeld zuerst unter Ver­ wendung des Verfahrens nach dem Stand der Technik (d. h. des in dem '270-Patent offenbarten Verfahrens) verarbeitet, bei dem die lokalen Mini­ ma, die die Spaltenzentralzeilen in den Horizontalkantenzählungen dar­ stellen, ermittelt sind. Wenn die Anzahl der ermittelten Spaltenzentralzei­ len 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 vorbe­ stimmter 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 auf­ einanderfolgende 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 Talbe­ reich 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 ab­ getasteten Barcode gelesen werden. Wenn jedoch die Anzahl der ermittel­ ten Reihenzentralzeilen um Eins größer als der erwartete Wert ist, wird die zusätzliche Zentralzeile ermittelt und gelöscht. Auch wird, wenn die An­ zahl 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äh­ lungen 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, gele­ sen, um ein Signal zu erzeugen, das die codierte Information in dem zwei­ dimensionalen Barcode darstellt.
Zeichnungskurzbeschreibung
Die obigen Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden durch die folgende detaillierte Beschreibung der gegenwärtig be­ vorzugten, veranschaulichenden Ausführungsformen der vorliegenden Er­ findung unter Bezugnahme auf die begleitenden Zeichnungen offensichtli­ cher, wobei:
Fig. 1 einen zweidimensionalen Barcode zeigt, der eine Zeilenab­ fallverzerrung aufweist, und das resultierende Histogramm von Vertikalkanten und berechneten Zentralzeilen für die­ sen Barcode,
Fig. 2 ein vertikales Kantenhistogramm eines zweidimensionalen Barcodes ist, das bestimmte Elemente darstellt, die bei ei­ ner ersten Ausführungsform der vorliegenden Erfindung verwendet sind und den Nullkreuzungsübergang, den mi­ nimalen Spitzenspalt und die maximale Talschwelle umfas­ sen,
Fig. 3 ein vertikales Kantenhistogramm eines zweidimensionalen Barcodes ist, das zeigt, wie der adaptive Prozeß der ersten Ausführungsform arbeitet,
Fig. 4 ein Flußdiagramm ist, das den Betrieb der ersten Ausfüh­ rungsform der vorliegenden Erfindung beschreibt,
Fig. 5 ein Flußdiagramm ist, das zeigt, wie Spaltenzentralzeilen bei der zweiten Ausführungsform der vorliegenden Erfin­ dung berechnet werden,
Fig. 6 ein Flußdiagramm ist, das zeigt, wie Reihenzentralzeilen bei der zweiten Ausführungsform der vorliegenden Erfindung berechnet werden,
Fig. 7A einen zweidimensionalen Barcode mit Verzerrung und das resultierende Histogramm aus Vertikalkanten und berech­ neten Zentralzeilen für diesen Barcode einschließlich einer zusätzlichen Zentralzeile zeigt, und
Fig. 7B einen zweidimensionalen Barcode mit Zeilenabfallverzer­ rung zusammen mit dem resultierenden Histogramm aus Vertikalkanten und berechneten Zentralzeilen für diesen Barcode zeigt, nachdem die zusätzliche Zentralzeile bei ei­ nem Aspekt der zweiten Ausführungsform der vorliegenden Erfindung gelöscht worden ist,
Fig. 8 einen zweidimensionalen Barcode mit Verzerrung und das resultierende Histogramm aus Vertikalkanten und berech­ neten Zentralzeilen für diesen Barcode zeigt, wobei gezeigt ist, wie eine zusätzliche Zentralzeile bei einem anderen Aspekt der zweiten Ausführungsform der vorliegenden Er­ findung eingesetzt wird.
Detailbeschreibung der bevorzugten Ausführungsformen
Die vorliegende Erfindung stellt eine Verbesserung des Verfahrens zum Lesen eines zweidimensionalen Barcodes des '270-Patentes dar und sieht beim Lesen von zweidimensionalen Barcodes verbesserte Ergebnisse vor, die eine Verzerrung umfassen, die durch die Übertragung des Dokumen­ tes bewirkt wird, auf dem der Barcode gedruckt ist. Es sind zwei bevor­ zugte Ausführungsformen der vorliegenden Erfindung offenbart. Bei bei­ den 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 dem '270-Patent vollständig beschrieben ist. Die erste Ausfüh­ rungsform analysiert die Kantenzählungen in den horizontalen und verti­ kalen 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 Zeilenabfall- oder Zeilenwiederholungsverzer­ rung gestoßen wird. Jedoch kann es im Vergleich zu dem Verfahren des '270-Patentes eine erhöhte Anzahl von Gesamtfehlern erzeugen. Somit verwendet die zweite Ausführungsform selektiv das Verfahren der ersten Ausführungsform oder das Verfahren des '270-Patentes und sieht in be­ zug 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 des '270- Patentes lokale Minima in Bereichen, in denen ein Auftreten von Zentral­ zeilen erwartet wird, um die Reihen- und Spaltenzentralzeilen in den Ver­ tikal- bzw. Horizontalkantenhistogrammen zu finden. Bei der Verwendung des Verfahrens des '270-Patentes können sich Fehler ergeben, wenn der zweidimensionale Barcode eine Zeilenabfall- oder Zeilenwiederholungsver­ zerrung umfaßt, da dann die Zentralzeilen außerhalb des erwarteten Be­ reiches angeordnet sind. Um diese Fehler zu beseitigen, wird ein anderes Verfahren zur Analyse der Vertikal- und Horizontalkantenhistogrammfel­ der 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 Fig. 2 ist ein Histogramm 100 gezeigt, das ein Kantenfeld (entweder ho­ rizontal oder vertikal) darstellt, das so verarbeitet wird, um die Zentralzei­ len darin zu ermitteln. Bei dem Verfahren der ersten Ausführungsform be­ sitzen Spitzen (beispielsweise Spitze 115) im allgemeinen einen Wert, der größer als ein minimaler Anfangsspitzenwert 140 ist, und werden bevor­ zugt 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ärtskreuzungs­ punktes 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 Anfangs­ spitzenwert 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 vor­ zugsweise, 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 zwei­ ten 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üh­ rungsform vorzugsweise, daß zumindest ein Pixel (beispielsweise Pixel 145) in einem Talbereich (beispielsweise Bereich 105) zwischen dem iden­ tifizierten 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ß verschiede­ ne 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 Zentral­ zeile identifizierende Pixel ist das Pixel in dem gültigen Talbereich mit dem niedrigsten Wert (ein gültiger Talbereich ist einer mit zumindest einem Pi­ xel, 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 zwi­ schen zwei Spitzen auftritt, kann der Wert an diesem Mittelpunktpixel die maximale Talschwelle überschreiten. Durch zusätzliche Untersuchung ei­ nes Pixels links und rechts von dem Mittelpunktpixel kann immer noch ein Pixel mit einem Wert, der niedriger als die Schwelle 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 Zufallszahlen 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 ande­ ren. Der Anfangsspitzenschwellenwert 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 die Anfangsspitzenschwelle 140 fallen.
Wie in dem Histogramm 100 von Fig. 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 die­ ser 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 er­ sten Spitze und dem Aufwärtskreuzungspunkt der zweiten Spitze) unter Verwendung eines neuen Schwellenwertes 160 weiter zu untersuchen, der kleiner als der Anfangsschwellenwert 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 die Schwelle 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 Bar­ code als unlesbar zurückgewiesen werden muß. Dieser adaptive Prozeß ermöglicht, daß eine sehr niedrige Spitze (beispielsweise Spitze 180) de­ tektiert 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 re­ sultierenden Verringerung des jeweils anderen Faktors zu optimieren. Die Spitzenschwelle wird auf ihren Anfangswert 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 vorde­ finiert, wodurch es möglich wird, daß ein Validierungsschritt während der Verarbeitung des Feldes ausgeführt werden kann. Der zweidimensionale Barcode des '270-Patentes besteht vorzugsweise aus einem 20 × 20 Bit- Feld, und daher existiert beim Lesen dieses Barcodes, wenn die Gesamt­ anzahl von Zentralzeilen, die in jedem Feld gefunden wird, nicht gleich 20 ist, ein Fehlerzustand und der zweidimensionale Barcode muß als unles­ bar zurückgewiesen werden.
Wie in Fig. 4 gezeigt ist, ist das Zentralzeilendetektionsverfahren der er­ sten Ausführungsform vorzugsweise in einer schnellen Einmalabtastpro­ zedur ausgeführt, die die gesamte oben beschriebene Verarbeitung inte­ griert. 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 Kreuzungs­ punkt (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 mini­ malen Anfangsspitzenwert 140 eingestellt ist, wie in den Fig. 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 Normalspalt 130 darstellt, wie oben unter Bezugnahme auf Fig. 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är­ tige 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 An­ zahl der Iterationen für die adaptive Schwellenbestimmung aus, die auf­ treten, 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 Fig. 3 diskutiert ist, überschreitet, wird davon ausgegangen, daß ein Fehler aufgetreten ist, und die Verar­ beitung 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 Fig. 2 diskutiert ist.
Wenn bei Schritt 240 der Abstand zwischen dem gegenwärtigen Positi­ onsindex und dem ersten Kreuzungspunkt kleiner oder gleich dem P_min- Wert ist, ist die zweite Spitze nicht gefunden worden und der erste Kreu­ zungspunkt crossp_1 wird bei Schritt 235 auf die gegenwärtige Indexposi­ tion 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 Positi­ onsindex und dem ersten Kreuzungspunkt größer als der P_min-Wert ist, wird vermutet, daß die zweite Spitze gefunden worden ist. Wie unter Be­ zugnahme auf Fig. 2 beschrieben ist, ist der zweite Kreuzungspunkt ein Aufwärtskreuzungspunkt, wie beispielsweise Punkt 108 in Fig. 2. Der Mittelpunkt zwischen dem ersten Kreuzungspunkt crossp_1 und der ge­ genwärtigen Indexposition wird bei Schritt 245 identifiziert, wobei der ge­ genwärtige Indexpunkt hier den vermuteten zweiten Kreuzungspunkt dar­ stellt. Bei Schritt 250 wird ein Talbereich, der den Feldwert an dem Mit­ telpunkt und die Feldwerte an den Punkten, die einen Index aufweisen, der um Eins größer und um Eins kleiner als der Mittelpunkt ist, identifi­ ziert, 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 Fig. 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 An­ zahl ü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 vorbe­ stimmten 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 Index­ position 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 dis­ kutiert 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 einge­ stellt 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 des '270-Patentes eine verbesserte Leistungsfä­ higkeit vorsieht, wenn es zum Lesen von Barcodes verwendet wird, die ei­ ne Zeilenabfallverzerrung aufweisen, die vier aufeinanderfolgende Zeilen beeinflußt. Es hat sich jedoch zusätzlich herausgestellt, daß, wenn Bar­ codes mit einer Zeilenwiederholungsverzerrung, die vier aufeinanderfol­ gende Zeilen beeinflußt, oder einer Zeilenabfall- oder Zeilenwiederho­ lungsverzerrung, 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 des '270-Patentes 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 zwei­ tes Verfahren entwickelt, das abwechselnd das Verfahren des '270- Patentes 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 Zei­ lenabfall- und/oder Zeilenwiederholungsverzerrung vorsieht und auch die niedrige Fehlerrate des Verfahrens des '270-Patentes vorsieht. Insbeson­ dere 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 Hori­ zontal- 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 er­ wartet ist.
Wie in dem Flußdiagramm von Fig. 5 gezeigt ist, wendet das Verfahren der zweiten Ausführungsform, da es nicht wahrscheinlich ist, daß eine Zeilen­ abfall- oder Zeilenwiederholungsverzerrung die Spalten des zweidimensio­ nalen Barcodes beeinflußt, zunächst das Verfahren des '270-Patentes bei Schritt 300 auf das Horizontalkantenfeld an. Wenn Schritt 305 bestimmt, daß die korrekte Anzahl an Spaltenzentralzeilen in dem Horizontalkan­ tenfeld bei Schritt 300 detektiert wurde, bewegt sich die Verarbeitung zu der Detektion der Reihenzentralzeilen in dem Vertikalkantenfeld (Schritt 320), wie in Verbindung mit Fig. 6 unten beschrieben ist. Wenn die kor­ rekte 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 Fig. 6 gezeigt ist, wird das Verfahren der ersten Ausführungsform, da die Zeilenabfall-/Zeilenwiederho­ lungsverzerrung am wahrscheinlichsten die Reihen des zweidimensionalen Barcodes beeinflußt, zunächst bei Schritt 350 auf das Vertikalkantenfeld angewendet. Wenn sich bei Sehritt 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 Reihenzentral­ zeilen unkorrekt ist, wird zunächst bestimmt, ob eine zusätzliche Zentral­ zeile (bei Schritt 365) oder eine Zentralzeile zu wenig (bei Schritt 380) vor­ handen ist. Wenn eine zusätzliche Zentralzeile existiert, fährt die Verar­ beitung mit dem Zentralzeilenlöschschritt 370 fort, wie unten unter Be­ zugnahme auf die Fig. 7A und 7B detailliert diskutiert ist. Wenn eine Zentralzeile zu wenig vorhanden ist, fährt die Verarbeitung mit dem Zen­ tralzeileneinsetzschritt 375 fort, der unten unter Bezugnahme auf Fig. 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 des '270-Patentes dazu verwendet wird, das Vertikalkantenfeld zu verarbeiten. Bei Beendigung entweder des Zen­ tralzeilenlöschschrittes 370, des Zentralzeileneinsetzschrittes 375 oder des Schrittes 385 wird bestimmt, ob bei der Ausführung des gewählten Ver­ fahrens bei Schritt 390 irgendwelche Fehler aufgetreten sind. Wenn keine Fehler aufgetreten sind, ist der Leseprozeß vollstä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 Fig. 5 und 6 beschrieben ist, so daß die Verarbeitung von Fig. 5 auf das Vertikalkan­ tenfeld und die Verarbeitung von Fig. 6 auf das Horizontalkantenfeld an­ gewendet 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 aufwei­ sen, richtig ermittelt werden) ist es, wenn sich die Anzahl von Zentralzei­ len, die unter Verwendung dieses Verfahrens ermittelt sind, nur um Eins von dem erwarteten Wert (d. h. 19 oder 21 bei der bevorzugten Ausfüh­ rungsform) unterscheidet, möglich, das Vertikalkantenfeld weiter zu ver­ arbeiten und entweder eine zusätzliche Reihenzentralzeile hinzuzufügen oder zu löschen.
Wie in dem Barcode 500 und dem zugehörigen Histogramm 505 von Fig. 7A gezeigt ist, ist, wenn eine zusätzliche Zentralzeile unter den Zentralzei­ len 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, beispiels­ weise Zentralzeile 525, zwischen zwei echten Zentralzeilen, beispielsweise Zentralzeilen 530 und 535, angeordnet ist. Folglich ist ein engerer Ab­ stand zwischen der "falschen" Zentralzeile 525 und den beiden umgeben­ den 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, benach­ bart der Zentralzeilen mit dem engsten Abstand, d. h. Zentralzeilen 525 und 535, gebildet wird. Danach wird der Löschbereich 515 durch Identifi­ kation der lokalen Minima darin (auf die gleiche Weise, wie bei dem Ver­ fahren des '270-Patentes) erneut verarbeitet, um eine einzelne Zentralzeile darin zu ermitteln. Fig. 7B zeigt Zentralzeilen 550, die sich nach einer sol­ chen Verarbeitung in dem Löschbereich 515 ergeben und eine neu ermit­ telte Zentralzeile 555 zwischen bereits existierenden Zentralzeilen 530 und 540 umfassen. Obwohl das bevorzugte Verfahren dieser Ausführungsform das Vertikalkantenfeld unter Verwendung des Verfahrens des '270- Patentes vollständig neu verarbeitet hat, wenn mehr als eine zusätzliche Zentralzeile gefunden wird (siehe Schritt 385 von Fig. 6), erkennen Fach­ leute, 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 Barcode 600 und dem zugehörigen Histogramm 605 in Fig. 8 tritt eine ähnliche Situation bei dem oben diskutierten Zentralzeilen­ lö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 Barcodes 600 detektiert sind. Der Bereich (beispielsweise Be­ reich 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 Einsetzbereich 615 identifiziert ist, wird die Zentralzeile durch Identifika­ tion der lokalen Minima darin auf die gleiche Art und Weise ermittelt, wie bei dem Verfahren des '270-Patentes verwendet ist. Die ermittelte Zentral­ zeile 640 ist in Fig. 8 in gestrichelter Form gezeigt. Obwohl das bevorzugte Verfahren dieser Ausführungsform das Vertikalkantenfeld unter Verwen­ dung des Verfahrens des '270-Patentes erneut verarbeitet, wenn mehr als eine Zentralzeile fehlt (siehe Schritt 385 von Fig. 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.
Während die vorliegende Erfindung unter Bezugnahme auf die bevorzug­ ten Ausführungsformen und deren verschiedene Aspekte gezeigt und be­ schrieben worden ist, sei für Fachleute angemerkt, daß verschiedene Än­ derungen und Modifikationen ohne Abweichung vom Umfang der Erfin­ dung durchgeführt werden können. Daher umfassen die angefügten An­ sprüche die hier beschriebenen Ausführungsformen, die oben erwähnten Alternativen und alle diesbezüglichen Äquivalente.

Claims (16)

1. Verfahren zum Decodieren von Information, die in einem zweidimen­ sionalen Barcode gespeichert ist, der auf ein gedrucktes Medium ge­ druckt ist, mit den Schritten, daß:
ein zweidimensionaler Barcode abgetastet wird, um ein zweidi­ mensionales Pixelfeld zu erzeugen, das den zweidimensionalen Bar­ code darstellt,
die Horizontalkantenzählung in jeder Pixelreihe in dem zweidi­ mensionalen Pixelfeld bestimmt wird,
die Vertikalkantenzählung in jeder Pixelspalte in dem zweidimen­ sionalen Pixelfeld bestimmt wird,
die Spaltenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Horizontalkantenzählun­ gen ermittelt und dann eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird,
die Reihenzentralzeilen dadurch bestimmt werden, daß jedes auf­ einanderfolgende Paar an Spitzen in den Vertikalkantenzählungen ermittelt und dann eine Reihenzentralzeile in einem Talbereich zwi­ schen 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 zweidimen­ sionalen Barcode darstellt.
2. Verfahren nach Anspruch 1, wobei jede der Spitzen in den Horizon­ talkantenzählungen eine Größe aufweist, die größer als eine vorbe­ stimmte Spitzenschwelle ist, und jede der Spitzen in den Vertikal­ kantenzählungen eine Größe aufweist, die größer als eine vorbe­ stimmte 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 aufeinan­ derfolgenden 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 vorbe­ stimmte Spitzenschwelle um eine vorbestimmte Größe zu verringern, wenn eine zweite Spitze in einem Paar von Spitzen in den Horizontal­ kantenzählungen von einer ersten Spitze um mehr als einen vorbe­ stimmten Abstand getrennt ist, und anschließend die zweite Spitze unter Verwendung der verringerten vorbestimmten Spitzenschwelle erneut identifiziert wird, und der Schritt zur Bestimmung der Reihen­ zentralzeilen einen weiteren Schritt umfaßt, um die vorbestimmte Spitzenschwelle um eine vorbestimmte Größe zu verringern, wenn ei­ ne zweite Spitze in einem Spitzenpaar in den Vertikalkantenzählun­ gen von einer ersten Spitze um mehr als einen vorbestimmten Ab­ stand 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 zweidimen­ sionalen Barcode gespeichert ist, der auf einem gedruckten Medium gedruckt ist, mit den Schritten, daß:
ein zweidimensionaler Barcode abgetastet wird, um ein zweidi­ mensionales Pixelfeld zu erzeugen, das den zweidimensionalen Bar­ code darstellt,
die Horizontalkantenzählung jeder Pixelreihe in dem zweidimen­ sionalen Pixelfeld bestimmt wird,
die Vertikalkantenzählung jeder Pixelspalte in dem zweidimensio­ nalen Pixelfeld bestimmt wird,
die Spaltenzentralzeilen dadurch bestimmt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Horizontalkantenzählun­ gen ermittelt wird, wobei jede der Spitzen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist, und jedes der auf­ einanderfolgenden Spitzenpaare um zumindest einen vorbestimmten Abstand getrennt ist, und dann eine Spaltenzentralzeile in einem Tal­ bereich 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 auf­ einanderfolgende Spitzenpaar in den Vertikalkantenzählungen er­ mittelt wird, wobei jede der Spitzen eine Größe aufweist, die größer als eine vorbestimmte Spitzenschwelle ist, und jedes der aufeinan­ derfolgenden Spitzenpaare um zumindest einen vorbestimmten Ab­ stand getrennt ist, und dann eine Reihenzentralzeile in einem Talbe­ reich 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 zweidimen­ sionalen Barcode darstellt.
7. Verfahren zum Decodieren von Information, die in einem zweidimen­ sionalen Barcode gespeichert ist, der auf einem gedruckten Medium gedruckt ist, mit den Schritten, daß:
ein zweidimensionaler Barcode abgetastet wird, um ein zweidi­ mensionales Pixelfeld zu erzeugen, das den zweidimensionalen Bar­ code darstellt,
die Horizontalkantenzählung in jeder Pixelreihe in dem zweidi­ mensionalen Pixelfeld bestimmt wird,
die Vertikalkantenzählung in jeder Pixelspalte in dem zweidimen­ sionalen Pixelfeld bestimmt wird,
die Spaltenzentralzeilen durch die Schritte bestimmt werden, daß:
die lokalen Minima ermittelt werden, die die Spaltenzen­ tralzeilen in den Horizontalkantenzählungen darstellen, und die Anzahl der ermittelten Spaltenzentralzeilen mit einer vor­ bestimmten Anzahl verglichen wird, oder
abwechselnd dazu, wenn die Anzahl an ermittelten Spal­ tenzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Spaltenzentralzeilen dadurch ermittelt werden, daß jedes auf­ einanderfolgende Paar an Spitzen in den Horizontalkanten­ zählungen ermittelt und dann eine Spaltenzentralzeile in ei­ nem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird,
die Reihenzentralzeilen durch die Schritte bestimmt werden, daß:
jedes aufeinanderfolgende Paar an Spitzen in den Vertikal­ kantenzählungen ermittelt wird, eine Reihenzentralzeile in ei­ nem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird und dann die Anzahl der ermittelten Reihenzentralzeilen mit einer vorbestimmten Anzahl vergli­ chen wird, oder
abwechselnd dazu, wenn die Anzahl der ermittelten Rei­ henzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Reihenzentralzeilen durch Ermittlung der lokalen Minima ermittelt werden, die die Reihenzentralzeilen in den Vertikal­ kantenzählungen darstellen,
Binärdaten ausgelesen werden, die an der Überschneidung jeder Reihenzentralzeile und Spaltenzentralzeile ermittelt wer­ den, 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 Horizon­ talkantenzählungen eine Größe aufweist, die größer als eine vorbe­ stimmte Spitzenschwelle ist und jede der Spitzen in den Vertikal­ kantenzählungen eine Größe aufweist, die größer als eine vorbe­ stimmte 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 zweidimen­ sionalen Barcode gespeichert ist, der auf einem gedruckten Medium gedruckt ist, mit den Schritten, daß:
ein zweidimensionaler Barcode abgetastet wird, um ein zweidi­ mensionales Pixelfeld zu erzeugen, das den zweidimensionalen Bar­ code darstellt,
die Horizontalkantenzählung in jeder Pixelreihe in dem zweidi­ mensionalen Pixelfeld bestimmt wird,
die Vertikalkantenzählung in jeder Pixelspalte in dem zweidimen­ sionalen Pixelfeld bestimmt wird,
die Reihenzentralzeilen durch die Schritte bestimmt werden, daß:
die lokalen Minima ermittelt werden, die die Reihenzen­ tralzeilen in den Vertikalkantenzählungen darstellen, und die Anzahl der ermittelten Reihenzentralzeilen mit einer vorbe­ stimmten Anzahl verglichen wird, oder
abwechselnd dazu, wenn die Anzahl der ermittelten Rei­ henzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Reihenzentralzeilen dadurch ermittelt werden, daß jedes aufeinanderfolgende Paar an Spitzen in den Vertikalkanten­ zählungen ermittelt und dann eine Reihenzentralzeile in ei­ nem Talbereich zwischen jedem aufeinanderfolgenden Paar an Spitzen ermittelt wird,
wobei die Spaltenzentralzeilen durch die Schritte bestimmt wer­ den, daß:
jedes aufeinanderfolgende Paar an Spitzen in den Hori­ zontalkantenzählungen ermittelt wird, eine Spaltenzentralzeile in einem Talbereich zwischen jedem aufeinanderfolgenden Spitzenpaar ermittelt wird und dann die Anzahl von ermittel­ ten Spaltenzentralzeilen mit einer vorbestimmten Anzahl ver­ glichen wird, oder
abwechselnd dazu, wenn die Anzahl an ermittelten Spal­ tenzentralzeilen nicht gleich der vorbestimmten Anzahl ist, die Spaltenzentralzeilen durch Ermitteln der lokalen Minima er­ mittelt werden, die die Reihenzentralzeilen in den Horizontal­ kantenzä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 zweidimen­ sionalen 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 Ermittlungs­ schrittes ferner einen Schritt zum Einsetzen einer zusätzlichen Zen­ tralzeile umfaßt, wenn detektiert wird, daß die Anzahl der zuerst er­ mittelten Spaltenzentralzeilen um Eins kleiner als die vorbestimmte Anzahl ist.
15. Verfahren nach Anspruch 12, wobei jede der Spitzen in den Vertikal­ kantenzählungen eine Größe aufweist, die größer als eine vorbe­ stimmte Spitzenschwelle ist, und jede der Spitzen in den Horizontal­ kantenzählungen eine Größe aufweist, die größer als eine vorbe­ stimmte Spitzenschwelle ist.
16. Verfahren nach Anspruch 12, wobei jede der Reihenzentralzeilen ei­ ne 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 true DE10025332A1 (de) 2000-11-30
DE10025332B4 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8624970B2 (en) 2004-08-10 2014-01-07 Thomas Krobath Method for displaying route information
WO2022023175A1 (de) * 2020-07-31 2022-02-03 Technische Universität Dortmund Verfahren und vorrichtung zur auswertung von matrixcodes

Families Citing this family (32)

* 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
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インフロンティア株式会社 バーコードリーダ、バーコード読取り方法及びバーコード読取り用プログラム

Family Cites Families (45)

* 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
US4782221A (en) 1985-04-01 1988-11-01 Cauzin Systems, Incorporated Printed data strip including bit-encoded information and scanner control
US4692603A (en) 1985-04-01 1987-09-08 Cauzin Systems, Incorporated Optical reader for printed bit-encoded data and method of reading same
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 画像処理方式
JPS62219768A (ja) 1986-03-19 1987-09-28 Canon Inc 電子フアイリングシステム
JPS62219769A (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
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
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
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
US5091966A (en) 1990-07-31 1992-02-25 Xerox Corporation Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes
US5128525A (en) 1990-07-31 1992-07-07 Xerox Corporation Convolution filtering for decoding 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
US5221833A (en) 1991-12-27 1993-06-22 Xerox Corporation Methods and means for reducing bit error rates in reading self-clocking glyph codes
US5245165A (en) 1991-12-27 1993-09-14 Xerox Corporation Self-clocking glyph code for encoding dual bit digital values robustly
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 株式会社テック 画像認識装置
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
US6082619A (en) * 1998-12-16 2000-07-04 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8624970B2 (en) 2004-08-10 2014-01-07 Thomas Krobath Method for displaying route information
WO2022023175A1 (de) * 2020-07-31 2022-02-03 Technische Universität Dortmund Verfahren und vorrichtung zur auswertung von matrixcodes

Also Published As

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

Similar Documents

Publication Publication Date Title
DE10025332A1 (de) Verfahren zum Lesen eines zweidimensionalen Barcodes
DE68922998T2 (de) Verfahren zur Digitalisierung von in Formblättern eingetragenen Informationen mittels Vergleich mit sehr grossen Symbolen.
DE3851867T2 (de) Zeichenerkennungsgerät.
DE69728482T2 (de) Zweidimensionaler Codeleser
DE3538639C2 (de)
DE10036110B4 (de) Verfahren zur Bestimmung des Schrägwinkels eines zweidimensionalen Barcodes
DE19960555B4 (de) Verfahren zum Auffinden und Lesen eines zweidimensionalen Strichcodes
DE2801536C2 (de) Zeichenformkodiervorrichtung
DE69028899T2 (de) Verfahren und Vorrichtung zum Dekodieren von Strichkodes mit Mehrfachabtastung
DE69332771T2 (de) Verfahren und Vorrichtung zum Dekodieren von strichkodierten Symbolen
DE2417282C3 (de) Vorrichtung zum Lesen von Fingerabdrücken
DE69835358T2 (de) Verfahren zur Korrektur der Verzerrung beim Abtasten eines optischen Codes
DE4005492C2 (de) Bildcodierverfahren
DE3632832A1 (de) Zeichenerkennungssystem
DE3322443C2 (de)
DE19530829C2 (de) Verfahren zum elektronischen Wiederauffinden von einem Dokument hinzugefügter Information
EP1260933A2 (de) Verfahren zum Erfassen von zweidimensionalen Codes
DE19624900A1 (de) Verfahren und Gerät zum Decodieren nicht aufgelöster Balkencode-Profile unter Verwendung eines Kantenfindungs-Schaltkreises
DE2540101A1 (de) Automatisches zeichenerkennungs- system
DE102008013789A1 (de) Vorrichtung, Verfahren und Programm zum Eliminieren von Zeichenstörungen
DE2829808A1 (de) Verfahren und vorrichtung zum lesen von zeichen
DE2410306C3 (de) Anordnung zur Einstellung eines Abtastrasters oder einer Erkennungslogik auf die Schräglage von abzutastenden bzw. zu erkennenden Zeichen
DE3854216T2 (de) Bildverarbeitungsgerät und -verfahren.
DE19711873C2 (de) Verfahren und Vorrichtung zum Lesen eines Strichcodes
DE102006008936A1 (de) Verfahren zum Erkennen von Objekten und Objekterkennungssystem

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