DE10025332A1 - Verfahren zum Lesen eines zweidimensionalen Barcodes - Google Patents
Verfahren zum Lesen eines zweidimensionalen BarcodesInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 230000007423 decrease Effects 0.000 claims description 3
- 239000000454 talc Substances 0.000 claims 2
- 229910052623 talc Inorganic materials 0.000 claims 2
- 238000012935 Averaging Methods 0.000 claims 1
- 230000003247 decreasing effect Effects 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 18
- 230000003044 adaptive effect Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000010871 livestock manure Substances 0.000 description 1
- 210000004072 lung Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods 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/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D 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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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)
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 |
-
1999
- 1999-05-25 US US09/318,462 patent/US6371373B1/en not_active Expired - Fee Related
-
2000
- 2000-05-23 DE DE10025332A patent/DE10025332B4/de not_active Expired - Fee Related
- 2000-05-24 GB GB0012711A patent/GB2350462B/en not_active Expired - Fee Related
- 2000-05-25 JP JP2000155201A patent/JP2001014418A/ja active Pending
Cited By (2)
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 |