DE69929572T2 - Verfahren zum Lesen eines zweidimensionalen Strichcode ohne Taktsignal und ohne Ränder - Google Patents

Verfahren zum Lesen eines zweidimensionalen Strichcode ohne Taktsignal und ohne Ränder Download PDF

Info

Publication number
DE69929572T2
DE69929572T2 DE69929572T DE69929572T DE69929572T2 DE 69929572 T2 DE69929572 T2 DE 69929572T2 DE 69929572 T DE69929572 T DE 69929572T DE 69929572 T DE69929572 T DE 69929572T DE 69929572 T2 DE69929572 T2 DE 69929572T2
Authority
DE
Germany
Prior art keywords
panamark
pixels
data
dimensional
skew
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69929572T
Other languages
English (en)
Other versions
DE69929572D1 (de
Inventor
Jangjing Columbia Zhou
Daniel P. Hopewell Lopresti
Andrew San Jose Tomkins
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 DE69929572D1 publication Critical patent/DE69929572D1/de
Application granted granted Critical
Publication of DE69929572T2 publication Critical patent/DE69929572T2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06018Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding
    • G06K19/06028Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding using bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Printers Characterized By Their Purpose (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)
  • Character Input (AREA)
  • Facsimiles In General (AREA)

Description

  • Feld der Erfindung
  • Die Erfindung betrifft allgemein zweidimensionale Strichcodes (barcodes), und besonders eine Symbolik für einen robusten, zweidimensionalen Strichcode ohne Taktsignal, die Codierung von in solcher Symbolik für einen Strichcode formatierter Information, das Drucken solcher Symbolik für einen Strichcode auf ein Druckmedium und das Decodieren derselben.
  • Hintergrund der Erfindung
  • Im Gegensatz zu der häufig gehörten Voraussage, dass wir eines Tages in einer "papierlosen Gesellschaft" leben werden, spielen Papier und andere Druckmedien eine zunehmend bedeutendere Rolle als ein billiges, wirkungsvolles und bequemes Mittel für Kommunikation. Eine fundamentale Begrenzung bei Papier ist jedoch, dass es aus der Sicht eines Computers gegenwärtig nur ein Nur-Ausgabe-Format ist. Während Papier das bevorzugte Medium für die Darstellung von Information für den Gebrauch durch Menschen ist, ist es für einen Computer schwierig wenn nicht unmöglich, die gedruckten Daten zuverlässig wieder zu lesen. Optische Zeichenerkennung (OCR, optical character recognition) versucht, dieses Problem in einem relativ einfachem Bereich zu lösen, wie bei Texten, die unter Verwendung von Standardfonts gedruckt wurden, aber sie hat bisher nur einen begrenzten Erfolg gehabt. Während Genauigkeitsraten von neunundneunzig Prozent (99%) möglicherweise erreichbar sind und beeindruckend erscheinen, werden bei einer Seite mit 3000 Zeichen immer noch durchschnittlich dreißig (30) OCR-Fehler auftreten und daher wird eine teuere und zeitraubende manuelle Nachbearbeitung erforderlich sein.
  • Ein anderer Ansatz verwendet vom Computer lesbare Strichcodes, die direkt auf Papier (oder anderen Druckmedien wie Mikrofilm) eingeschlossen sein können. Einmal codiert können solche Strichcodes von dem Computer verwendet werden, um Information wiederzugewinnen, die für den menschlichen Leser offenkundig ist, für einen Computer zu erkennen aber schwierig ist (z.B. gedruckten Text), Information, die bei dem Erstellen der Seite eingeschlossen ist, für den menschlichen Leser aber im Wesentlichen unsichtbar ist (z.B. Tabellenkalkulationsformeln) oder irgendeine andere gewünschte Information, gleich ob von den aktuellen Zeichen des Textes auf Papier abhängig oder nicht.
  • Vom Computer lesbare Strichcodes, bei denen digitale Daten direkt auf Papier aufgezeichnet werden, sind bekannt und wurden benutzt, um Dokument- oder Produktidentifikation unter Verwendung eines festen Satzes von Werten und einfacher numerischer Codierungs- und Abtasttechnologie vorzusehen. Dokument- oder Produktidentifikationssysteme, die in der Vergangenheit eingesetzt worden sind, umfassen Strichcodemarkierer und -abtaster, die eine breite Vielzahl von Anwendungsbereichen gefunden haben. Hinsichtlich Papierdokumenten wurden spezielle Markierungen oder Muster in dem Papier verwendet, um Information über ein betroffenes Gerät zu liefern, z.B. das Auftragssteuerungsblatt für Bildverarbeitung, wie von Hikawa im U.S. Patent Nr. 5,051,779 angegeben. Auf ähnliche Weise wurden identifizierende Markierungen, die codierte Information umfassen, auf der Vorderseite der erneut gedruckten Formulare gedruckt, wie im U.S. Patent Nr. 5,060,980 von Johnson et al. beschrieben. Das System von Johnson et al. sieht vor, dass ein Benutzer von Hand gezeichnete Information in die Felder auf einer Papierkopie des Formulars eingibt, und dass das Formular dann abgetastet wird, um Einfügungen in die Felder in dem duplizierten Formular vorzusehen, das im Computer elektronisch gespeichert wird. Ein noch anderes System wird in dem U.S. Patent Nr. 5,091,966 von Bloomberg et al. beschrieben, welches die Decodierung von Codes in Glyphenform beschreibt, wobei die Codes auf dem Papier digital codierte Daten sind. Die identifizierenden Codes können von einem Computer gelesen werden und dadurch wird die Handhabung des Dokuments durch den Computer ermöglicht, wie das Identifizieren, Auslesen und Übertragen solch eines Dokuments.
  • Neben den oben beschriebenen, verschieden gestalteten Strichcodes sind in der Technik auch zweidimensionale Strichcodes bekannt, die "Datenstreifen" genannt werden und eine Vielzahl von Zeilen mit "Datenlinien" haben, welche Information repräsentieren, die auf Druckmedien digital codiert ist. Jede Datenlinienzeile besteht aus einer Folge schwarzer und weißer Bildpunkte, die jede binäre Nullen und Einsen repräsentieren. Die Anordnung der Bits in jeder Zeile bestimmt die digitalen Daten, die dort gespeichert sind. Die in der Gesamtheit der Zeilen gespeicherten Daten definieren die Daten, die in dem zweidimensionalen Strichcode enthalten sind. Um den Strichcode zu lesen, führt der Benutzer einen Hand scanner, der die Information in jeder Datenzeile gleichzeitig ließt, vertikal entlang der Länge des Strichcodes vorbei, um alle Datenzeilen zu lesen.
  • Ein Beispiel eines Systems nach dem Stand der Technik, das einen zweidimensionalen Strichcode mit Datenstreifen verwendet, welcher Zeilen von Datenlinien auf Papiermedium hat, ist in den U.S. Patenten Nr. 4,692,603, 4,754,127 und 4,782,221 von Brass et al. zu finden. In diesem System bestehen zweidimensionale Strichcodes aus Datenlinienzeilen, die verwendet werden, um Computerprogramme und -daten auf Papier zu codieren, und die mit Hilfe von in der Hand gehaltenen Scanner abgetastet werden. Zusätzlich zur Codierung von Computerprogrammen und -daten, enthalten diese Datenlinien auch Spurfolge- und Synchronisationsbits, im Folgenden als "Taktbits" bezeichnet. Die Anforderungen für die Verwendung von zahlreichen Taktbits innerhalb jeder Datenlinienzeile reduziert signifikant die Menge der digitalen Daten, die innerhalb jeder Zeile gespeichert werden kann. Falls eine Datenlinienzeile mit Taktbits beschädigt ist, was nicht ungewöhnlich ist, wenn solche Strichcodes fotokopiert oder mittels Faksimilesystemen übertragen werden, gehen solche Taktbits verloren, was es schwierig wenn nicht sogar unmöglich macht, die in dem Strichcode codierte Information zu decodieren.
  • Das U.S. Patent Nr. 5,083,214 von Knowles beschreibt ein zweidimensionales Strichcodesystem, das ebenfalls in den codierten Daten selbst eingebettete Taktbits verlangt. Statt jedoch jede Zeile und Spalte von Daten mit Synchronisations- und Taktbits zu codieren, verwendet das Knowles-'214-Patent die oberste Zeile in einem Datenstrichcode, um die Synchronisation während der Abtastung vorzusehen. Ferner umfassen die am weitesten nach links stehenden, ersten acht Bits Taktbits, die verwendet werden, um die Taktgeber einzurichten, um die in jeder Zeile enthaltenen Datenbits zu lesen. Da die oberste Zeile und alle acht am weitesten nach links stehenden Spalten des zweidimensionalen Strichcodes nach der Beschreibung im Knowles-'214-Patent allein für die Synchronisation und Taktung verwendet werden, wird die gesamte Datenkapazität des Strichcodes proportional dazu verringert. Fall die oberste Zeile oder die am weitesten nach links stehenden Spalten des Strichcodes beschädigt sind, geht darüber hinaus Taktinformation verloren, was es schwierig wenn nicht gar unmöglich macht, die in jeder Datenzeile codierte Information auszulesen, wie bei Systemen nach dem Stand der Technik.
  • Das U.S. Patent Nr. 4,924,078 von Sant'Anselmo et al. beschreibt ein zweidimensionales Strichcodesystem, in dem ein Orientierungs- und/oder Taktungszellenrand innerhalb des Körpers des Strichcodes selbst eingeschlossen ist. Für alle Fälle, in denen die genaue Stelle, Zeichengröße und Datendichte nicht vor dem Lesen des Strichcodes bekannt sind, ist der Rand im Sant'Anselmo-'078-Patent erforderlich und muss glatt und mindestens an zwei Seiten des Datenbereichs vorhanden sein. Zusätzlich sind Taktungszellen erforderlich, wenn bestimmte Information nicht von vornherein bekannt ist, wie die Anzahl der Zellen pro Seite. Weil die Orientierungs- und/oder Taktungszellenränder innerhalb des Strichcodes selbst eingeschlossen sind, wird hier wiederum die gesamte Datenkapazität des Strichcodes proportional dazu verringert. Weil für die Decodierung des Strichcodes kritische Information von dem Orientierungsrand abgeleitet wird, macht ferner eine Beschädigung einer einzelnen Zeile oder Spalte der Ausführungsform des Sant'Anselmo-'078-Patents, bei der der Rand nur an zwei Seiten vorliegt, es schwierig wenn nicht gar unmöglich, die in dem Strichcode codierten Daten auszulesen.
  • In der ebenfalls beantragten Patentanmeldung "A Clock-Free Two-Dimensional Barcode and Method für Printing und Reading the Same" (Seriennummer 081569,280, eingereicht am 8. Dezember 1995) (die '280-Anmeldung), jetzt als EP-A-0783160 veröffentlicht, welche die Basis für die Präambel von Anspruch 1 repräsentiert, wird ein zweidimensionaler Strichcode ohne Taktung mit einem Rand auf mindestens einer der vier Seiten des Strichcodes beschrieben, wobei der Rand außerhalb der Grenzen des Strichcodes selbst plaziert ist. Die zweidimensionalen Strichcodes werden "PanaMarks"® genannt. Wie in 1A dargestellt, ist der PanaMark 10 in der unteren rechten Ecke der Druckseite 11 gedruckt, obgleich diese Position vollständig willkürlich ist. In der in 1A dargestellten Ausführungsform wird der verbleibende Platz der Druckseite 11 von gedrucktem Text eingenommen. Wie eine in der Technik bewanderte Person erkennen wird, kann ein beliebiger Typ von einem vom Computer gedruckten Material, z.B. eine Tabellenkalkulation oder eine Graphik, für den gedruckten Text eingesetzt sein. Der in 1B dargestellte PanaMark 10 umfasst einen Rand 13, der an allen seinen vier Seiten vorhanden ist. Obgleich der Rand 13 nur an einer der vier Seiten des PanaMark 10 erforderlich ist, wie in der '280-Anmeldung beschrieben wird, wird er aus ästhetischen Gründen typisch an allen vier Seiten aufgeführt.
  • Es ist ein Ziel der vorliegenden Erfindung, ein Verfahren der Decodierung einer Information eines Strichcodes vorzusehen, die in der Form eines zweidimensionalen Strichcodes ohne Rand und ohne Taktung digital codiert und auf einem Druckmedium gedruckt ist.
  • Verschiedene andere Ziele, Vorteile und Merkmale der vorliegenden Erfindung werden leichter offenkundig aus der nachfolgenden detaillierten Beschreibung und die neuartigen Merkmale werden besonders herausgearbeitet in den angefügten Ansprüchen.
  • Kurze Beschreibung der Zeichnungen
  • Die folgende detaillierte Beschreibung, die beispielsweise gegeben wird und die die vorliegende Erfindung nicht allein darauf beschränkt, wird am besten verstanden in Verbindung mit den begleitenden Zeichnungen, in denen:
  • 1A ein Diagramm ist, das schematisch den zweidimensionalen Strichcode der '280-Anmeldung veranschaulicht, der auf einer Seite eines Drucktextes gedruckt ist, und
  • 1B ein Beispiel des zweidimensionalen Strichcodes der '280-Anmeldung zeigt.
  • 2 ein Beispiel des zweidimensionalen Strichcodes zeigt.
  • 3 ein Flussdiagramm ist, das die Schritte für das Codieren und Decodieren von Information zeigt, die auf einem Druckmedium nach der vorliegenden Erfindung gedruckt ist.
  • 4 ein Beispiel eines schlechten Datenbitlayouts für den zweidimensionalen Strichcode zeigt.
  • 5A und 5B ein Beispiel eines besseren Datenbitlayouts für den zweidimensionalen Strichcode zeigen.
  • 6 ein Beispiel eines optimalen Datenbitlayouts für den zweidimensionalen Strichcode zeigt.
  • 7A ein Beispiel eines zweidimensionalen Strichcodes mit Zufallsorientierung mit "schlechtem" Ergebnis der Zufallsorientierung zeigt, und
  • 7B ein Beispiel eines zweidimensionalen Strichcodes mit Zufallsorientierung mit "gutem" Ergebnis der Zufallsorientierung zeigt.
  • 8A ein Flussdiagramm ist, das beschreibt, wie ein zweidimensionaler Strichcode nach der vorliegenden Erfindung zu lesen ist, und
  • 8B ein Flussdiagramm ist, das beschreibt, wie ein anderer zweidimensionaler Strichcode nach der vorliegenden Erfindung zu lesen ist.
  • 9A und 9B veranschaulichen, wie der zweidimensionale Strichcode nach der vorliegenden Erfindung innerhalb der Druckseite liegt.
  • 10A und 10B veranschaulichen, wie die Schrägstellung des zweidimensionalen Strichcodes nach einem Aspekt der vorliegenden Erfindung berechnet wird.
  • 11 eine parametrische Repräsentation einer geraden Linie veranschaulicht.
  • 12A und 12B Repräsentationen eines einzelnen Punktes innerhalb einer Ebene bzw. von zwei Punkten innerhalb einer Ebene veranschaulichen.
  • 13A und 13B die Ausrichtung von Randbildpunkten in idealem und schräg gestelltem, zweidimensionalen Strichcode der vorliegenden Erfindung zeigen.
  • 14A und 14B die vier Ränder eines PanaMark-Segments und die zwei Masken veranschaulichen, die verwendet werden, um die Randbildpunkte in der Schrägstellungserkennungsprozedur auf Basis der Hough-Transformation nach einem Aspekt der vorliegenden Erfindung zu erkennen.
  • 15A einen schräggestellten, zweidimensionalen Strichcode zeigt, und
  • 15B die Ränder zeigt, die innerhalb des zweidimensionalen Strichcodes von 15A unter Verwendung der Hough-Transformation nach der vorliegenden Erfindung erkannt wurden.
  • 16 den einfachen Schrägstellungskorrekturprozess für den zweidimensionalen Strichcode nach der vorliegenden Erfindung veranschaulicht.
  • 17 zwei Wege der Anwendung von Schrägstellungskorrektur für den zweidimensionalen Strichcode nach der vorliegenden Erfindung zeigt.
  • 18A bis 18D die vier alternativen Richtungen für das Lesen der Daten von dem zweidimensionalen Strichcode nach der vorliegenden Erfindung veranschaulichen.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Wie vollständig in den U.S. Patenten Nr. 5,625,721 und 5,703,972 von Lopresti et al. mit dem Titel "Certifiable Optical Character Recognition" für beide und in der ebenfalls anhängigen Patentanmeldung mit dem Titel "A Method and Means For Enhancing Optical Character Recognition of Printed Documents" (Seriennummer 08/138,467, eingereicht am 15. Oktober 1993), gegenwärtig in Zulassung, beschrieben ist, kann Information über den Inhalt, das Layout, die Erzeugung und die Wiedergewinnung eines Dokuments durch einen Computer codiert werden, wenn ein Dokument ursprünglich erzeugt wird oder bei nachfolgender Verarbeitung durch den Computer selbst. Die codierte Dokumentinformation kann dann über einen Datenstrichcode bereitgestellt werden, der hier auch als ein "PanaMark"® bezeichnet wird, der auf der Vorderseite einer gedruckten Version des Dokuments erzeugt wird. Gegenwärtig verfügbare, fortschrittliche Codierungs- und Druckauflösungsfähigkeiten können bis zu 30000 Informationsbits auf einer Fläche von 645,16 mm2 (1 Zoll2) unterbringen. Wie durch die oben angegebenen Anwendungen ausgesagt wird, kann theoretisch der gesamte Dokumenteninhalt codiert werden, begrenzt nur durch die Menge an Platz auf der Vorder seite des Dokuments, der für den PanaMark geopfert werden soll. Ein Strichcodeabtaster zusammen mit oder vollständig getrennt von einem optischen Seitenabtaster kann den PanaMark erfassen und die Information einem zugeordneten System übergeben, das mit der passenden Erkennungs- und Decodierungssoftware ausgerüstet ist. Die decodierte Information kann dann verwendet werden durch das Abtastsystem, um eine neue Version des Dokuments zu erzeugen oder um die Erkennung, Wiedergabe und Fehlerkorrektur für das abgetastete Dokument zu verbessern. Um den PanaMark zu decodieren, ist es nicht erforderlich, dass solch ein Strichcodeabtaster und Abtastsystem die Druckauflösung des PanaMarks kennt, vorausgesetzt, dass die Abtastauflösung des Abtasters mindestens so fein wie die Druckauflösung des PanaMarks ist, so dass jeder individueller 1 × 1-Bildpunkt oder größerer Bildpunkt des PanaMarks, der ein logisches Bit repräsentiert, abgetastet werden kann.
  • Die in der Form eines PanaMarks codierte Information kann verwendet werden, um die Software-Werkzeuge zu verbessern, die bereits verwendet werden, um das Papierdokument zu erzeugen. Beispiele umfassen Wortverarbeitungsprozessoren, Tabellenkalkulationen, Objektorientierte Graphiken und Multimediaanwendungen, wie Sprachaufzeichnung und fotografische Bildverarbeitung.
  • Die in dem in 1 gezeigten PanaMark 10 verwendete Randlinie 13 war kein kritisches Merkmal der in der '280-Anmeldung offengelegten Erfindung, da die meisten der dort beschriebenen Schlüsselprozeduren funktionieren, ob nun die Randlinie vorhanden ist oder nicht. Jedoch wurde die Randlinie 13 in der '280-Anmeldung von den Schritten der Schrägstellungsabschätzung und Schrägstellungsbeseitigung verwendet.
  • 2 veranschaulicht ein Beispiel der neuen PanaMark-Symbolik. Der PanaMark 20 umfasst eine codierte Menge von Datenbits in einem zweidimensionalen Gitter. Typisch wird jedes Datenbit, das codiert ist, als eine Matrix schwarzer oder weißer Bildpunkte 23 gedruckt. Vorzugsweise ist eine Bildpunktmatrix, die ein Datenbit repräsentiert, quadratisch und kann so klein sein wie eine 1 × 1-Matrix oder so groß sein wie eine 6 × 6-Matrix oder größer. Nicht quadratische Matrizen können ebenfalls verwendet werden. In der Symbolik für den PanaMark 20 wird keine Taktung oder Ränder benötigt oder verlangt. In der bevorzugten Ausführungsform ist der PanaMark 20 ein 20 × 20-Feld von Datenbits, obgleich erkannt werden kann, dass die Größe flexibel ist und dass die einzige Anforderung an die Größe ist, dass der Leseprozess im Voraus die Größe des codierten Felds kennt. In einigen Anwendungen kann es wünschenswert sein, ein Text-Etikett 22 in der Nähe des PanaMarks 20 vorzusehen, wenn auch optional und ohne Signifikanz weder für den Codierungs- noch für den Decodierungsprozess.
  • Hier werden zwei Ausführungsform beschrieben. In der ersten Ausführungsform sind die vier Eckbits 21 immer schwarz und sind notwendig für den Schablonenpassungs-Schrägstellungsabschätzprozess, die mit Bezug auf 10 in größerem Detail beschrieben wird. Die vier Eckbits 21 in der ersten Ausführungsform werden "Ankerbits" genannt. Die restlichen Datenbits in der ersten Ausführungsform sind pseudo-zufällig angeordnet und halten jede Kombination gewünschter Information und Fehlerkorrekturbits. Die Symbolik der ersten Ausführungsform liefert eine gute Schrägstellungsabschätzung, wenn die Schrägstellung klein und der PanaMark 20 frei von jeder Beschädigung ist. Jedoch macht die Plazierung der Ankerbits 21 in den Ecken sie empfänglich für Beschädigung. Somit gibt es in der zweiten Ausführungsform keine Anforderung für Ankerbits 21, und der PanaMark 20 ist einfach ein N × M-Feld von Datenbits, vorzugsweise mit N = M = 20. In der zweiten Ausführungsform sind alle Datenbits pseudo-zufällig angeordnet und können jede Kombination gewünschter Information und Fehlerkorrekturbits halten.
  • 3 veranschaulicht die Schritte, die in dem Codierungs-/Decodierungsprozess enthalten sind. Außer wie hier diskutiert, wird jeder der Schritte in der '280-Anmeldung in größerem Detail beschrieben. Während des Codierungsprozesses werden eingegebenen Daten in der Form eines eindimensionalen, linearen Bitstroms zuerst verarbeitet, um in Schritt 30 als Standard einen Block-basierten Korrekturcode ("ECC") hinzuzufügen, dann in Schritt 31 eine Zufallsorientierung einzuführen, in Schritt 32 eine Abbildung von einem eindimensionalen Bitstrom auf eine zweidimensionale Repräsentation, dem PanaMark, durchzuführen, und schließlich in Schritt 33 den PanaMark zu drucken. Der Decodierungsprozess wiederholt diese Schritte in umgekehrter Reihenfolge, liest in Schritt 34 den gedruckten PanaMark, bildet in Schritt 35 eine zweidimensionale Repräsentation auf eine eindimensionale Repräsentation ab, beseitigt in Schritt 36 die Zufallsorientierung, und wendet schließlich in Schritt 37 ECC an, um den "rohen", linearen Bitstrom wiederzuerzeugen. Als Teil der hier darge stellten, neuen PanaMark-Symbolik werden verbesserte Verfahren für die Zufallsorientierung, Abbildung, das Lesen und das Anwenden von ECC ebenfalls präsentiert.
  • Jeder ECC kann natürlich auf eine Weise verwirklicht werden, die eine gewisse Anzahl von zu korrigierenden Bitfehlern zulässt. Während solche Fehler allgemein unvermeidbar sind, kann das Verfahren, mit dem Daten in zwei Dimensionen abgebildet wird, so gewählt werden, dass die Wirkung bestimmter Arten von Fehlern auf die Lesbarkeit des PanaMarks als Ganzes minimiert wird. Die Bits werden so abgebildet, dass eine systematische Beschädigung der Markierung nicht mehr als einen Bitfehler in jedem Block oder Codewort verursachen sollte, was die Menge ist, die der ECC korrigieren kann.
  • Ein in 4 gezeigtes Verfahren der Plazierung der Bits von einem einzigen Block 40 sequentiell in einer Zeilenhauptreihenfolge oder einer Spaltenhauptreihenfolge innerhalb des Strichcodes 41 ist eine schlechte Wahl. Wenn ein Bild abgetastet wird, ist nicht ungewöhnlich, korrelierte Beschädigung entlang spezifischer Zeilen oder Spalten von Bildpunkten anzutreffen, wie in Zeile 42 dargestellt. In dem Fall von Flachbettscannern und Fax-Maschinen entsteht Zeilenbeschädigung als Ergebnis physikalischer Bewegung; entweder wird die CCD-Sensorzeile auf der Seite herunter bewegt, oder es wird die Seite an den stationären Sensoren vorbei gezogen. Jede Unregelmäßigkeit dieser Bewegung wird zu einer Verzerrung über gewisse Zeilen des abgetasteten Bildes führen. Es wird bemerkt, dass Zeile 42 sieben Bitfehler erfährt und daher vollständig verloren geht. Andererseits kann eine Spaltenbeschädigung auftreten, wenn bestimmte der CCD-Sensoren schlecht geworden sind, was zu schwarzen Streifen führt, die über die Länge der Seite nach unten verlaufen.
  • Wie in 5A und 5B gezeigt, ist eine bessere Strategie, die aufeinander folgenden Bits von einem einzigen Block entlang der Diagonale innerhalb des Strichcodes 45 zu plazieren. In diesem Fall wird nur ein Bit in jedem Block durch eine Beschädigung betroffen, die mit Zeile 46 oder Spalte 47 korreliert ist. Da das ECC Ein-Bit-Fehler pro Block korrigieren kann, bedeutet dies, dass alle Blocks erfolgreich decodiert werden können. Durch eine Abbildung der Blocks derart, dass die Beschädigung gleichmäßig über sie verteilt wird, wird die Robustheit der Symbolik insgesamt verbessert.
  • Es ist noch wünschenswerter, wenn Bits von einem einzigen Block in nicht benachbarte Zeilen und Spalten plaziert werden, weil die oben beschriebenen Störungseffekte potentiell Zeilen- oder Spaltengrenzen übergreifen können. Solange wie die Basisblockgröße kleiner als die Dimension der Markierung ist, ist dies möglich. Dies wird erreicht durch den in 6 gezeigten Abbildungsprozess. Der in 6 gezeigte Strichcode 50 zeigt, wie Block Null 51 auf die Hauptdiagonale des logischen PanaMarks 50 abgebildet wird, wobei jedes Bit durch mindestens eine Zeile und eine Spalte getrennt wird. Somit wird selbst eine Beschädigung, die zwei benachbarte Zeilen oder Spalten zerstört, aus sich heraus die korrekte Decodierung aller Blöcke nicht verhindern. Obgleich 6 einen logischen PanaMark 50 mit vier Ankerbits 52 darstellt, ist zu erkennen, dass die Ankerbits 52 nur notwendig sind, wenn das Schablonenpassungs-Schrägstellungwinkelerkennungsverfahren verwendet wird, wie hier mit Bezug auf 10A und 10B diskutiert werden wird.
  • Im Austausch für das Weglassen expliziter Taktgrenzen verlangt die in der '280-Anmeldung beschriebene Leseprozedur die Anwesenheit von genügend vielen Kantenübergängen, um die implizite Taktung zu synthetisieren. Große Bereiche ausschließlich mit weißen Bildpunkten oder ausschließlich mit schwarzen Bildpunkten sind wegen der konsequenten Reduktion in der Anzahl der Kanten problematisch. In der Praxis können solche Bereiche aufgrund regulärer Muster in den zugrunde liegenden Daten vorkommen, außer dass Schritte zu ihrer Verhinderung unternommen werden. Z.B. hat ein englischer Text, der im Standard-8-Bit-ASCII-Code repräsentiert wird, immer eine "0" in der Bitposition höchster Wertigkeit. 7A und 7B geben Beispiele eines "schlechten" PanaMarks 60 bzw. eines "guten" PanaMarks 61 wieder. Beide PanaMarks 60 und 61 werden gezeigt mit dem optionalen Textetikett 62. Es wird bemerkt, das PanaMark 60 vollkommen gültig ist – es codiert dieselbe Anzahl von Bits wie PanaMark 61. PanaMark 60 würde jedoch unter Verwendung der in der '280-Anmeldung präsentierten Techniken unmöglich zuverlässig zu lesen sein.
  • Solche Situationen können vor dem Auftreten verhindert werden durch Einführen einer Zufallsorientierung des Bitstroms. Das bedeutet, dass auf der Decodierungsseite die Zufallsorientierung wieder beseitigt werden muss. Dieser Prozess sollte tatsächlich eine "Pseudo-Zufallsorientierung" genannt werden, weil immer bekannt ist, wie diese Effekte rückabzuwickeln sind. Ein einfacher, wohlbekannter Ansatz für die Verwirklichung der Zufallsorientierung ist die Ausführung einer Exklusives-ODER-Operation ("XOR") über dem eingegebenen Strom Bit-für-Bit mit einem vordefinierten, zufallsorientiert erzeugten Schlüssel. Dies hat die Wirkung des Aufbrechens eines regelmäßigen Musters in dem Eingabestrom, was eine angenähert gleichmäßige Verteilung von Nullen und Einsen ergibt. Bei Codierung in dem PanaMark korrespondieren diese mit weißen bzw. schwarzen Bits. Auf diese Weise wird der "gute" PanaMark 61 erzeugt, der eine ausreichende Anzahl von Kanten für die implizite Taktung hat, welche für das Lesen der Datenbits notwendig ist. Der Schritt der Einführung einer Zufallsorientierung gibt der Markierung ein unauffälliges, graues Erscheinungsbild, das Leser weniger ablenkend empfinden als leicht erkennbare Muster.
  • Während des Decodierungsprozesses wird die Zufallsorientierung im Ausgabestrom entfernt durch eine Exklusives-ODER-Operation mit genau demselben Schlüssel. Daher ist lebenswichtig, dass die Codierungs- und Decodierungsprozeduren denselben Schlüssel verwenden. In seltenen Fällen ist es möglich, dass der zufallsorientierte Bitstrom derart degeneriert ist, dass er große weiße oder schwarze Bereiche enthält, wie durch den "schlechten" PanaMark 60 von 7A veranschaulicht. Um dieses Szenario zu vermeiden, kann die Codierungsprozedur optional aus einer kleinen Menge möglicher Schlüssel auszuwählen. Diese Auswahl wird geleitet durch die Qualität (d.h. die Zufälligkeit) des ausgegebenen Bitstroms. Obgleich die Decodierungsprozedur nicht von vornherein wissen kann, welcher Schlüssel von der Codierungsseite benutzt wurde, ist es eine einfache Angelegenheit, jeden Schlüssel auszuprobieren und die Ergebnisse unter Verwendung der Ausgabe des ECC-Prozesses zu bestätigen, d.h. der korrekte Schlüssel ist derjenige, der die geringste Anzahl von Fehlern aus dem ECC-Prozess produziert.
  • 8A und 8B sind Flussdiagramme, welche die Leseprozeduren für die hier präsentierten Strichcodeleseprozeduren veranschaulichen. Das in 8A beschriebene Verfahren ist ausgerichtet auf die Ausführungsform des PanaMarks, in der keine Ränder oder Ankerbits vorkommen, während das in 8B beschriebene Verfahren ausgerichtet ist auf die Ausführungsform des PanaMarks, welcher Ankerbits aber keine Ränder umfasst. Das Drucken wird von einem komplementären Satz von Routinen gehandhabt, die geradlinig sind, da keine Bildverarbeitung betroffen ist, und die vollständig in der '280-Anmeldung beschrieben sind.
  • In 8A lokalisiert der erste Schritt 70 den PanaMark auf der Seite, der keine Ränder oder Ankerbits hat. Es wird angenommen, dass die Region um die Markierung in den meisten Fällen relativ störungsarm ist; gewöhnlich wird sie in einer unbenutzten Ecke der Seite positioniert (wie z.B. in 1A). Wie besonders mit Bezug auf 9A und 9B diskutiert, arbeitet der Lokalisierungsschritt 70 zuerst durch eine Berechnung vertikaler und horizontaler Histogramme der Anzahl schwarzer Bildpunkte in der abgetasteten Seite. Weil der abgetastete PanaMark zufallsorientiert ist und deshalb eine angenähert gleiche Verteilung schwarzer und weißer Bildpunkte hat, hat er eine größer Anzahl schwarzer Bildpunkte als normaler Weise innerhalb des Bereichs des Dokuments vorkommt, in dem er positioniert ist. Jedes Histogramm wird sequentiell geprüft, Zeile für Zeile für das vertikale Histogramm und Spalte für Spalte für das horizontale Histogramm, bis ein erstes vorbestimmtes Niveau erreicht ist. Als Nächstes wird der Prozess "geringfügig zurück bewegt", bis ein zweites, niedrigeres vorbestimmtes Niveau erreicht ist. Dieses wird als die erste Grenze ausgewählt. Dann wird in einer Vorwärtsbewegung von dem Punkt, an dem das erste vorbestimmte Niveau gefunden wurde, das Histogramm geprüft, um den Punkt zu finden, an dem es unter das erste vorbestimmte Niveau fällt. Der nächste Prozess wird "geringfügig vorwärts bewegt", bis das zweite vorbestimmte Niveau erreicht wird, ähnlich dem oben beschriebenen "geringfügigzurück-Bewegungsprozess". Dieser Punkt wird als die zweite Grenze der Markierung ausgewählt. Durch Ausführung dieses Prozesses sowohl über dem horizontalen Histogramm als auch über den vertikalen Histogramm wird ein Kasten ausgewählt, der den PanaMark begrenzt. Der "geringfügig-zurück-Bewegungsschritt" und der "geringfügig-vorwärts-Bewegungsschritt" stellen sicher, dass die Ecken nicht abgeschnitten werden, insbesondere im Fall einer schräggestellten PanaMark.
  • In Schritt 71 von 8A wird die Schrägstellung des PanaMarks unter Verwendung der "Hough-Transformations"-Prozedur geschätzt. Diese Prozedur wird mit Bezug auf 11 bis 13 in größerem Detail beschrieben. In dieser Prozedur werden horizontale Ränder zuerst für jede Zeile logischer Datenbildpunkte gefunden. Unter Verwendung der Hough-Transformation wird eine Repräsentation für eine Linie gefunden, die parallel zu den horizontalen Rändern ist (welche bei Schrägstellung nicht rein horizontal sein wird), und der Winkel zwischen dieser Linie und einer rein horizontalen Linie wird berechnet, was den Schrägstellungswinkel ergibt.
  • In Schritt 72 wird der Schrägstellungswinkel ausgewertet. Falls der Schrägstellungswinkel ϕ kleiner als ein bestimmter vorbestimmter Schwellwert α ist, ist keine Schrägstellungskorrektur erforderlich, und der Beschneidungsschritt 75 wird als nächster ausgeführt. Falls der Schrägstellungswinkel ϕ größer als der bestimmte, vorbestimmte Schwellwert α ist, dann wird der trigonometrische Schrägstellungskorrekturschritt 74 als nächster ausgeführt. Wie besonders mit Bezug auf 17 beschrieben wird, ist es dann, wenn der Schrägstellungswinkel bekannt ist, möglich, die Position des bezüglich der Schrägstellung korrigierten Abbilds auf der mathematischen Basis des schräggestellten Bilds zu berechnet.
  • Falls die Schrägstellungskorrektur – falls erforderlich – abgeschlossen ist, wird in Schritt 75 ein enger Begrenzungskasten um den PanaMark herum gelegt, der nun mit sauberen horizontalen und vertikalen Rändern orientiert ist. Der Beschneidungsschritt wird auf eine Weise sehr ähnlich dem Lokalisierungsschritt 70 ausgeführt, aber mit engeren Toleranzen. Schließlich werden in Schritt 76 die Bits ausgelesen, die ein N × M-Bitfeld ergeben (20 × 20 Bit in der bevorzugten Ausführungsform). Der Leseprozess wird besonders in der '280-Anmeldung und mit Bezug auf 18 beschrieben.
  • In 8B lokalisiert der erste Schritt 70 den PanaMark, der Ankerbits aber keine Ränder hat, auf der gedruckten Seite auf dieselbe Weise, wie oben allgemein beschrieben wurde und besonders mit Bezug auf 9A und 9B beschrieben wird. Wie zuvor mit Bezug auf 8A angegeben, wird angenommen, dass die Region um die Markierung relativ störungsarm ist.
  • In Schritt 71 wird die Schrägstellung des PanaMarks geschätzt. Zwei alternative Verfahren für die Abschätzung der Schrägstellung werden hier beschrieben. Das erste Verfahren ist eine "Schablonenpassungs"-Prozedur, die nur für kleine Winkel der Schrägstellung wirksam ist (sie wurde in 8A nicht verwendet, weil sie verlangt, dass der zu decodierende PanaMark Ankerbits in jeder Ecke hat), was besonders mit Bezug auf 10A und 10B beschrieben wird. Allgemein arbeitet dieser Prozess durch Ausrichtung von zwei Schablonen nahe den zwei benachbarten Ecken des PanaMarks, z.B. der Ecke oben links und der Ecke unten links. Jede Schablone bildet einen rechten Winkel und hat vorzugsweise eine innere Reihe schwarzer Bits und zwei äußere Reihen weißer Bits. Jede Schablone wird Bit für Bit in Richtung auf die jeweilige Ecke bewegt, bis die engstmögliche Passung gefunden ist, welche die innere Zeile der schwarzen Bits mit der jeweiligen Ecke ausrichtet. Obgleich der PanaMark schräg gestellt sein kann, bleibt jede Schablone bei ihre Einpassung mit der jeweiligen Ecke vertikal und horizontal ausgerichtet. Sobald bei einer Schrägstellung des PanaMarks die engstmögliche Passung für jede Ecke gefunden ist, werden die schwarzen Eckbits einer jeden Schablone nicht vertikal ausgerichtet sein. Der Winkel zwischen der vertikalen Linie, (oder horizontalen Linie, falls die Ecke oben links und die Ecke oben rechts ausgewählt wurde,) die sich von dem Eckbit der ersten Schablone erstreckt, und der Linie, die sich von dem Eckbit der ersten Schablone zum Eckbit der zweiten Schablone erstreckt, repräsentiert den Schrägstellungswinkel und kann durch einfache trigonometrische Verfahren berechnet werden.
  • In dem zweiten Verfahren wird die "Hough-Transformation" verwendet, um den Schrägstellungswinkel zu berechnen. Dieses Verfahren, das oben allgemein mit Bezug auf 8A beschrieben wurde und besonders mit Bezug auf 11 bis 13 beschrieben wird, ist wirksam für einen größeren Bereich von Schrägstellungswinkeln (und verlangt nicht, dass der PanaMark Ankerbits hat). Die Wahl der Schablonenpassungsprozedur ist ein Abwägen zwischen der zu korrigierenden Größe der Schrägstellung und der zugewiesenen Verarbeitungszeit, weil die Hough-Transformations-Prozedur mehr Verarbeitungszeit beansprucht. Falls Schrägstellungswinkel erwartet werden, die größer sind als bei Verwendung der Schablonenpassungsprozedur erkannt werden können, sollte das Hough-Transformations-Verfahren benutzt werden. Falls Verarbeitungszeit von großer Bedeutung ist und kleinere Schrägstellungswinkel erwartet werden, sollte die Schablonenpassungsprozedur benutzt werden. In Schritt 72 wird der Schrägstellungswinkel ausgewertet. Falls der Schrägstellungswinkel ϕ kleiner als ein bestimmter, vorbestimmter Schwellwert α ist, wird keine Schrägstellungswinkelkorrektur benötigt, und der Beschneidungsschritt 75 wird als Nächstes durchgeführt. Falls der Schrägstellungswinkel ϕ größer als ein vorbestimmter Winkel β ist, dann wird der trigonometrische Schrägstellungswinkelkorrekturschritt 74 als Nächstes durchgeführt, wie allgemein mit Bezug auf 8A beschrieben wurde und besonders mit Bezug auf 17 beschrieben wird. Falls der Schrägstellungswinkel ϕ zwischen den vorbestimmten Winkels α und β liegt, dann wird der einfache Schrägstellungswinkelkorrekturschritt 73 als Nächstes durchgeführt. Das einfache Schrägstellungswinkelkorrekturverfahren verwendet eine Scherungsrotationstechnik. In diesem Prozess wird angenommen, dass ein Eckbit, z.B. das Eckbit oben links, korrekt positioniert ist. Auf der Basis des Schrägstel lungswinkels wird jede Zeile sequentiell geprüft, um die Anzahl der Bildpunkte zu bestimmen, die zu verschieben sind, z.B. von rechts nach links. Auf gleiche Weise wird jede Spalte sequentiell geprüft, um die Anzahl der Bildpunkte zu bestimmen, die zu verschieben sind, z.B. von oben nach unten. Als Nächstes werden die Bildpunkte verschoben, wie in jeder Zeile bezeichnet, und werden schließlich die Bildpunkte verschoben, wie in jeder Spalte bezeichnet.
  • Wie mit Bezug auf 8A beschrieben, wird dann, wenn die Schrägstellungswinkelkorrektur – falls benötigt – abgeschlossen ist, in Schritt 75 ein enganliegender Kasten um den PanaMark herum gelegt und die Bits in Schritt 76 ausgelesen, was ein N × M-Bitfeld (20 × 20 Bits in der bevorzugten Ausführungsform) ergibt.
  • Es ist in verschiedenen Schritten in dem Prozess möglich, zu überprüfen, ob ein gültiger PanaMark erkannt wurde oder nicht. Z.B. wird erwartet, dass der PanaMark innerhalb eines bestimmten Größenbereichs liegt, und spezifische Eigenschaften hinsichtlich seiner Textur (ungefähr 50 schwarz/50 weiß) aufweist. In 8A und 8B wird Fehlerüberprüfung gezeigt hinsichtlich des Lokalisierungsschritt 70, des Beschneidungsschritts 75 und des Leseschritt 76. In nachfolgenden Stufen nach dem Leseschritt 76 kann das ECC ebenfalls verwendet werden, um die Gültigkeit zu bestätigen. Falls an irgendeinem Punkt ein charakteristisches Merkmal nicht gefunden wird, gibt es zwei Optionen: (1) gehe zurück und versuche einen unterschiedlichen Ansatz oder (2) verwirf die weitere Verarbeitung. Es wird bemerkt, dass es kritisch ist, dass die Fehlererkennungsschritte sehr schnell sind. Nur wenn eine spezielle Verarbeitung benötigt wird, sollte mehr Zeit zugelassen werden, um den PanaMark zu lesen. Darum werden in 8B zwei alternative Verfahren präsentiert für die Durchführung des Schrägstellungswinkelkorrekturschritts, wobei der trigonometrische Schrägstellungswinkelkorrekturschritt 74 nur bei Notwendigkeit benutzt wird, und normaler Weise der einfache Schrägstellungswinkelkorrekturschritt 73 benutzt wird, der schneller arbeitet als der komplizierte Schrägstellungswinkelkorrekturschritt 74. Wie in 8A für den PanaMark ohne Ankerbits gezeigt, können nur die komplexeren Prozeduren für die Schrägstellungswinkelabschätzung benutzt werden.
  • 9 veranschaulicht die zwei Schritte, die benötigt werden, um den Lokalisierungsschritt 70 auszuführen. Das Ziel des Lokalisierungsschritts 70 ist, einen begrenzenden Kasten für den PanaMark zu finden, von dem angenommen wird, dass er sich irgendwo in dem eingegebenen Bild befindet, z.B. der in 1A gezeigte PanaMark 10 in der Ecke rechts unten des Dokuments 11. Normaler Weise ist der PanaMark das einzige Objekt an der bestimmten Position auf der Seite, außer einem optischen Textetikett. Falls der PanaMark in den Inhalt des Bildes eingebettet ist oder andere große Komponenten in dem eingegebenen Bild vorkommen, müssen ausgeklügeltere Prozeduren auf der Basis morphologischer Operationen und statistischer Analyse verwendet werden. Jedoch sind in der Praxis solche Fällen selten. Während dieses Prozesses ist zu erwarten, dass es eine geringe Menge von "versprenkelten" Störungen gibt, und dass das gesamte Bild schräg gestellt sein kann.
  • Der in 9 veranschaulichte Lokalisierungsprozess basiert auf Projektionen auf die x-Achse und der y-Achse. Mit Bezug auf 9A wird zuerst das vertikale Ausmaß (d.h. die obere und untere Begrenzung) des PanaMarks 90 bestimmt. Dazu wird die Zahl der schwarzen Bildpunkte in jeder Zeile des eingegebenen Bilds, auf das der PanaMark gedruckt ist, summiert, was eine Projektion auf die y-Achse 104 erzeugt. Die Verarbeitung schreitet in der Projektion auf die y-Achse von oben nach unten fort. In der gezeigten Ausführungsform ist das Etikett unterhalb des PanaMarks, obgleich eine in der Technik bewanderte Person verstehen kann, dass es – falls vorhanden – an einer der vier Seiten des PanaMarks 90 liegen kann. Ein minimaler Schwellwert 100 wird eingestellt, so dass zufällige Störungen ignoriert werden. Wenn eine Zeile gefunden wird, welche den minimalen Schwellwert 100 überschreitet, der durch den Punkt 91 gezeigt wird, wird der Schwellwert geringfügig reduziert, und die obere Grenze 102 wird gefunden durch eine Rückwärtsbewegung in dem Histogramm 104, bis der reduzierte Schwellwert unterschritten wird (Punkt 92). Diese "Reduzierung" des Schwellwerts 100 verhindert das Abschneiden der Ecken des PanaMarks in dem Fall, dass der PanaMark schräg gestellt und der Schwellwert zu eng eingestellt ist. Als Nächstes wird die Verarbeitung in Abwärtsrichtung fortgesetzt, wie in Punkt 93 gezeigt, bis das Histogramm 104 unter den minimalen Schwellwert 100 fällt. An diesem Punkt wird der Schwellwert um denselben Betrag wie zuvor reduziert, um die untere Begrenzung 103 in Punkt 94 zu finden, obgleich hier die Verarbeitung in Abwärtsrichtung statt einer Rückwärtsbewegung fortgesetzt wird.
  • Sobald das korrekte vertikale Ausmaß bestimmt worden ist (was das Etikett effektiv beseitigt), wird eine ähnliche Operation durchgeführt, um das horizontale Ausmaß (d.h. die rechte und die linke Begrenzung) des PanaMarks 90 zu bestimmen. Schwarze Bildpunkte werden für jede Spalte über die gegenwärtigen aktiven Zeilen summiert, um ein Histogramm 101 der Projektion auf die x-Achse zu erzeugen. Die Verarbeitung geht von links nach rechts. Im Punkt 95 hält die Verarbeitung an, wenn der minimale Schwellwert 100 überschritten ist. Der Schwellwert wird dann geringfügig reduziert, und die linke Begrenzung 105 wird ausgewählt durch eine Rückwärtsbewegung entlang dem Histogramm 101, bis der reduzierte Schwellwert in Punkt 96 unterschritten wird. Dann wird die Verarbeitung an Punkt 96 fortgesetzt, an dem der minimale Schwellwert 100 gefunden wurde, und nun wird nach einem Niveau kleiner als der Schwellwert 100 gesucht. Sobald dieser in Punkt 97 gefunden ist, wird der Schwellwert wieder um einen festgesetzten Betrag reduziert, und die rechte Begrenzung 106 wird in Punkt 98 ausgewählt durch fortgesetzte Bewegung von links nach rechts, bis der reduzierte Schwellwert unterschritten wird. Natürlich kann die Reihenfolge der Findung der vertikalen und horizontalen Grenzen des PanaMarks umgekehrt werden.
  • Nachdem der Lokalisierungsprozess abgeschlossen ist, wird angenommen, dass ein akkurater Begrenzungskasten für den PanaMark bestimmt worden ist, der auf eine Anzahl von Wegen bestätigt werden kann, z.B. durch den ECC-Prozess.
  • Sobald der PanaMark innerhalb der Seite lokalisiert ist, ist es notwendig, den Schrägstellungswinkel – falls vorhanden – abzuschätzen. Dies ist erforderlich, weil spätere Verarbeitungsschritte (d.h. das Lesen) davon abhängen, dass die Markierung nahezu perfekt ausgerichtet ist. Selbst wenn der Benutzer sorgfältig ist beim Plazieren der Seite auf der Abtastvorrichtung, können kleine Beträge der Schrägstellung trotzdem vorkommen. Sobald der Betrag der Schrägstellung bekannt ist, kann ein Schrägstellungskorrekturschritt angewendet werden, um den PanaMark passend auszurichten. Zwei alternative Verfahren werden hier für die Abschätzung des Schrägstellungswinkels präsentiert, wie mit Bezug auf Block 71 von 8 beschrieben. Das einfachere Verfahren, das verlangt, dass der PanaMark Ankerbits umfasst, ist die Schablonenpassungsschrägstellungswinkelabschätzungsprozedur. Die Schablonenpassungsschrägstellungswinkelabschätzungsprozedur benötigt viel weniger Verarbeitungszeit als die komplexere Hough-Transformations-Prozedur, aber nur die Hough-Transformations-Prozedur kann verwendet werden, um den Schrägstellungswinkel von PanaMarks ohne Ankerbits zu berechnen.
  • 10 veranschaulicht die Schablonenpassungsprozedur für die Schrägstellungswinkelabschätzung (Schritt 71 von 8B), die für kleine Schrägstellungswinkel zuverlässig arbeitet, wie sie vorkommen, wenn der Benutzer eine angemessene Sorgfalt bei der Plazierung der Seite, welche den PanaMark 110 (mit vier Ankerbits) enthält, auf der Glasscheibe der Abtastvorrichtung ausübt, oder wenn eine Abtastvorrichtung, die eine automatische Blattzuführung beinhaltet, verwendet wird, um die Seite, die den PanaMark 110 beinhaltet, abzutasten. Wie zuvor in Verbindung mit Schritt 71 von 8B bemerkt, können die für die Bestimmung durch die Schablonenpassungsprozedur zu großen Schrägstellungswinkel, unter Verwendung der Hough-Transformation berechnet werden, welche in Verbindung mit 11 und 12 zu beschreiben sind.
  • Mit Bezug auf 10A und 10B sind die Schablonen 111, 112 für die Nordwestecke (NW-Ecke) bzw. die Südwestecke (SW-Ecke) definiert. Jede Schablone 111, 112 umfasst vorzugsweise eine Reihe schwarzer Bildpunkte 117 und zwei Reihen weißer Bildpunkte 113. Wie im linken Abschnitt von 10 gezeigt, wird jede Schablone 111, 112 über die geeignete Unterregion des PanaMarks 110 bitweise bewegt, um die Ecken zu lokalisieren. Dieser Prozess wird durch die Pfeile 118, welche die Bewegung der Schablone 111 zur Nordwestecke hin zeigen, und durch die Pfeile 119 angezeigt, welche die Bewegung der Schablone 112 zur Südwestecke hin zeigen. An jedem Punkt der Bewegung wird eine zweidimensionale Hamming-Distanz berechnet, die in der Technik wohlbekannt ist, (d.h. die Anzahl der Bildpunktstellen, bei denen die Schablone und das Bild nicht übereinstimmen), und jede Schablone 111, 112 wird vor- und zurück bewegt, bis diese Distanz für jede Ecke minimiert ist.
  • Sobald die Schablonen 111, 112 in ihren am besten passenden Positionen sind, wird der Winkel zwischen den Eckbildpunkten 115, 116 in den Schablonen 111, 112 bestimmt, wie in 10B gezeigt, auf eine Weise, die in der Technik wohlbekannt ist, was eine Abschätzung für den Schrägstellungswinkel ϕ des PanaMarks 110 ergibt.
  • Es wird bemerkt, dass die Schablonen 111, 112 nicht schräg gestellt sind, während die Ankerbits in dem PanaMark 110 schräg gestellt sein können (d.h. die Schablonen sind vordefiniert und der Schrägstellungswinkel ist nicht im Voraus bekannt). Aus diesem Grund ist die Prozedur zuverlässig nur für kleine Schrägstellungswinkel. Die Schrägstellung über ein ein ziges Bit ist relativ geringfügig im Vergleich zu der Schrägstellung über die gesamte Ausdehnung des PanaMark 110. Daher werden die Schablonen 111, 112 gut in ihre beabsichtigte Positionen passen, solange die Ankerbits in dem Bild nicht signifikant verzerrt sind (d.h. der Schrägstellungswinkel ϕ nicht zu groß ist).
  • Die Hough-Transformation kann ebenfalls verwendet werden, um den Schrägstellungswinkel für Größen des Schrägstellungswinkels zu bestimmen, die zu bestimmen die Schablonenpassungsprozedur nicht in der Lage ist, und für PanaMarks ohne Ankerbits. Die Hough-Transformation ist eine der ältesten und robustesten Verfahren, die in der Bildanalyse und Computervision verwendet wird. Sie ist eine Technik für die Erkennung geometrischer Merkmale wie gerade Linien, Kreise, u.s.w. in einem digitalen Bild. Die Hough-Transformation ist eine parametrische Transformation, welche eine Menge von Punkten einer Gestalt in einen kleinen Satz von Parametern abbildet, die für diese Gestalt charakteristisch sind. Wie in 11 gezeigt, können z.B. Punkte auf einer geraden Linie 120 auf ein Paar von Parametern (p, θ) durch ihre parametrische Gleichung abgebildet werden: ρ = xcos(θ) + ysin(θ)wo ρ, 121, die normale Distanz der Linie von dem Ursprung ist, und θ, 122, der Winkel der Normalen der Linie mit der x-Achse ist.
  • Die obige Korrespondenz zwischen allen Punkten auf einer geraden Linie und ein Parameterpaar (ρ, θ) nimmt an, dass (ρ, θ) der geraden Linie bekannt ist. Wie in 12A gezeigt, kann ein willkürlicher Punkt (x, y) 127 in einer Ebene jedoch auf einer unendlichen Anzahl gerader Linien liegen, wie durch die Linie 123a bis 123d dargestellt. Mit anderen Worten: ein Punkt (x, y) 127 kann auf eine unendliche Anzahl von Parametern (ρ, θ) abgebildet werden. Die Menge Fx,y = {(ρ, θ)|0 ≤ θ < 180°, ρ = xcos(θ) + ysin(θ)} stellt alle geraden Linien dar, die durch (x, y), 127, hindurch gehen.
  • Wie in 12B gezeigt, gibt es andererseits für alle zwei Punkte (x0, y0) 128 und (x1, y1) 129 eine gerade Linie 124, die durch beide hindurch geht. Dementsprechend existiert ein Paar von Parametern (ρ*, θ*), das sowohl der Menge Fx0,y0 als auch Fx1,y1 gemeinsam ist, so dass: Fx0,y0 ⋂ Fx1,y1 = {(ρ*, θ*)}
  • Falls viele Punkte (x1, y1) in einer Ebene eine gerade Linie von Parametern (ρ*, θ*) bilden, werden daraus folgend die Parameter ein Mitglied aller korrespondierenden Mengen Fxi,yi sein. Mit anderen Worten: gegeben eine Menge von Punkten in einer Ebene; dann kann die Hough-Transformation verwendet werden, um die Existenz einer geraden Linie der gegebenen Parameter zu erkennen durch Berechnung der Häufigkeit, mit der die Parameter in der Menge Fxi,yi über alle Punkte erscheinen.
  • In der Praxis verlangt der auf der Hough-Transformation basierende Linienerkennungsalgorithmus ein zweidimensionales Akkumulatorfeld, welches den quantisierten Parameterraum (ρ, θ) repräsentiert. Um die Linien zu erkennen, untersucht die Prozedur jeden Vordergrund-Bildpunkt (x, y) in dem Bild und berechnet alle quantisierten Werte (ρ, θ) in der Menge Fx,y. Die sich ergebenden (ρ, θ)-Einträge in das Akkumulatorfeld werden inkrementiert.
  • Nachdem alle Bildpunkte verarbeitet worden sind, wird das Akkumulatorfeld nach hohen Spitzenwerten abgesucht. Diese Spitzen zeigen die Parameter der wahrscheinlichsten geraden Linien in dem Bild an. Der höchste Spitzenwert repräsentiert die Parameter der "dominanten" geraden Linie in dem Bild.
  • Wie in 13A gezeigt, liegen bei perfekter Abtastung die Randbildpunkte eines PanaMarks 130, welche mit den logischen Bits in derselben Zeile in einem PanaMark 130 korrespondieren, auf derselben Abtastlinie 132. Wie in 13B gezeigt, sind diese Randbildpunkte bei einer Schrägstellung des PanaMarks 131 grob in der Richtung der Schrägstellung ausgerichtet, und somit bilden die Randbildpunkte gerade Linien, wie als parallele Abtastlinie 133 und lotrechte Abtastlinie 134 hinsichtlich der Orientierung des PanaMarks 131. So kann die Hough-Transformation verwendet werden, um diese geraden Linien zu identifizieren, wie die Abtastlinien 133 und 134, und nachfolgend den Schrägstellungswinkel des PanaMarks 131 ableiten.
  • Der erste Schritt der Schrägstellungserkennungsprozedur auf der Basis der Hough-Transformation ist, die Randbildpunkte innerhalb eines PanaMarks zu identifizieren. Die schwarzen und weißen Muster innerhalb eines PanaMarks haben vier Seiten (hier "Kanten" genannt). 14A zeigt die vier Kanten eines schwarzen Musters 140, die in zwei zueinander orthogonale Orientierungen ausgerichtet sind, d.h. die horizontalen Kanten 141 und die vertikalen Kanten 142. Zum Zweck der Schrägstellungsabschätzung ist es ausreichend, die Randbildpunkte nur in einer Orientierung zu erkennen, z.B. nur horizontale Ränder 141.
  • Wie in 14B gezeigt, werden zwei Randmasken 143, 146 auf ein PanaMark-Muster angewendet, um die horizontalen Randbildpunkte zu identifizieren. Obgleich eine Randmaske angemessen wäre, um die Schrägstellungsabschätzung durchzuführen, werden in der hier offengelegten, bevorzugten Ausführungsform zwei Randmasken 143, 146 verwendet, um Robustheit der Identifizierungsprozedur vorzusehen. Schwarze Bildpunktstellen, deren schwarze und weiße Muster in vertikaler Richtung mit einer der Masken übereinstimmen, werden als Randbildpunkte betrachtet. Die Breite der Maske 145, 146 wird vorzugsweise auf die Hälfte der Anzahl der Bildpunkte eines logischen Bits eines PanaMark in dem abgetasteten Bild gesetzt.
  • 15A zeigt ein abgetastetes PanaMark 150 mit einem Schrägstellungswinkel von 10°, und 15B zeigt die horizontalen Kantenbildpunkte 151, die in dem PanaMark 150 erkannt wurden. Sobald die Kantenbildpunkte 151 identifiziert sind, wird die Hough-Transformations-Prozedur angewendet, um die "dominante" gerade Linie in dem Kantenbild 152 zu erkennen. Die Schrägstellung des PanaMarks 150 wird dann als die Schrägstellung der dominanten Linie im Kantenbild 152 berechnet.
  • Nachdem der Schrägstellungswinkel unter Verwendung einer der soeben beschriebenen Prozeduren geschätzt worden ist, kann es notwendig sein, einen Schrägstellungskorrekturschritt anzusetzen. Wie bei den anderen Schritten, die beim Lesen einer PanaMark vorkommen, gibt es eine Anzahl unterschiedlicher Wege, dies zu erreichen.
  • Wie in 16 gezeigt, kann eine "Scherungsrotations"-Prozedur verwendet werden, um die Schrägstellung des PanaMarks für relativ kleine Grade der Schrägstellung zu korrigieren. Dies ist eine eindimensionale Annäherung an eine richtige, zweidimensionale trigonometrische Rotation, deren Berechnung hinsichtlich der Verarbeitungszeit teurer ist. Scherungsrotation arbeitet gut für die Arten kleiner Winkel, die gewöhnlich zu erwarten sind. Falls größere Werte erkannt werden, muss der komplexere und daher zeitaufwendigere Prozess verwendet werden, der mit Bezug auf 17 beschrieben wird. Zwei getrennte, eindimensionale Schritte werden durchgeführt, was dazu führt, die betroffenen Zeilen und Spalten des PanaMarks gleitend zu verschieben: eine horizontale Scherung, gefolgt von einer vertikalen Scherung.
  • Der Scherungsrotations-Prozess beginnt mit der Annahme, dass der obere linke Bildpunkt 163 des PanaMarks korrekt plaziert ist. Auf der Basis des zuvor bestimmten Schrägstellungswinkels wird eine kompensierende Anzahl von Bildpunkten für das Verschieben jeder aufeinanderfolgenden Zeile berechnet, wobei von oben nach unten gearbeitet wird. Auf gleiche Weise wird eine kompensierende Anzahl von Bildpunkten für das Verschieben jeder aufeinanderfolgenden Spalte berechnet, wobei wieder angenommen wird, dass der obere linke Bildpunkt korrekt plaziert ist. Die Rotation wird dann durchgeführt durch Verschieben erst der Zeilen und dann der Spalten, wie in 16A und 16B dargestellt. Es wird bemerkt, dass die 16A und 16B die getrennten Schritte der Berechnung der Verschiebung mit der aktuellen Rotation kombinieren. Wie in dem horizontalen Scherungsschritt gezeigt, ist der erste Schritt, die Anzahl der kompensierenden Bildpunkte zu berechnen, die für jede Zeile des Bilds 160 zu verschieben ist, wobei von oben nach unten gearbeitet wird. Wie links vom Bild 160 in 16A angezeigt, benötigen die obersten vier Zeilen keine Verschiebung, die nächsten zwei Zeilen benötigen eine Verschiebung um einen Bildpunkt, und die zwei untersten Zeilen benötigen eine Verschiebung um zwei Bildpunkte. Wie in dem vertikalen Scherungsschritt gezeigt, ist der nächste Schritt, die Anzahl der kompensierenden Bildpunkte zu berechnen, die für jede Spalte des Bilds 160 zu verschieben ist, wobei von links nach rechts gearbeitet wird. Wie unter Bild 161 in 16B angezeigt, benötigen die ersten zwei Spalten keine Verschiebung, die nächsten zwei Spalten benötigen eine Verschiebung um einen Bildpunkt, und die letzten zwei Spalten benötigen eine Verschiebung um zwei Bildpunkte. Als Nächstes wird der horizontale Scherungsprozess über dem Bild 160 durchgeführt durch Verschiebung der unteren vier Zeilen von Bildpunkten. Schließlich wird der vertikale Scherungsprozess durchgeführt durch Verschiebung der rechten vier Spalten von Bildpunkten um die berechneten Beträge, was das Endergebnis ergibt, das in 16C. gezeigt wird. Der aktuelle PanaMark ist nur ein 6 × 6-Bitfeld, und die in dem PanaMark 162 gezeigten, äußeren weißen Bereiche werden beseitigt während des in 75 dargestellten Beschneidungsschritts 75 und wie im Folgenden diskutiert wird.
  • Das in 16C gezeigte Beispiel wurde gewählt, um die zwei Scherungsoperationen zu veranschaulichen, aber die grobe Auflösung der Bitkarte und der große Betrag der Schrägstellung führen zu einem irreführenden Betrag der Verzerrung in dem Ausgabebild, was in der Praxis nicht vorkommt.
  • Wie in 17 gezeigt, kann bei der Verwirklichung des in 8 beschriebenen, trigonometrischen Schrägstellungskorrekturschritts 74 die Beziehung zwischen einem zweidimensionalen Bild 171 und seinem schräg gestellten (oder gedrehten) Gegenstück 170 als eine affine Transformation der Koordinaten durch die wohlbekannten Gleichungen beschrieben werden: x' = xcosϕ – ysinϕ (1) y' = xsinϕ + ycosϕ (2)wo (x, y) und (x', y') die Bildpunktkoordinaten in dem ursprünglichen Bild 171 bzw. die Bildpunktkoordinaten in dem verdrehten Bild 170 und ϕ der Schrägstellungswinkel ist.
  • Sobald ϕ bekannt ist, kann konsequenter Weise das ursprüngliche Bild 171 aus seiner verdrehten Version 170 berechnet werden durch die inverse Transformation: x = x'cosϕ + y'sinϕ (3) y = –x'sinϕ + y'cosϕ (4)
  • Ein geradliniger Weg für die Verwirklichung der Schrägstellungskorrektur ist die Berechnung der Koordinaten (x, y) des hinsichtlich der Schrägstellung korrigierten Bilds 171 für jeden schwarzen Bildpunkt (x', y') in dem eingegebenen Bild 170 unter Verwendung der inversen Transformation (Gleichungen (3) und (4)), wie durch die gestrichelte Linie 173 in 17 gezeigt. Jeder Bildpunkt (x, y) wird dann auf die Farbe des Bildpunktes (x', y') gesetzt.
  • Alternativ kann die Operation auf dem entgegen gesetzten Weg ausgeführt werden: für jeden Bildpunkt (x, y) in dem Zielbild wird seine Position in dem eingegebenen Bild (x', y') über die Gleichungen (1) und (2) berechnet, wie durch die gestrichelte Linie 172 von 17 gezeigt wird. Die Farbe des Bildpunktes wird dann von der berechneten Stelle auf (x, y) kopiert.
  • Aus mathematischer Sicht sind die zwei Verwirklichungen gleichwertig. Für digitale Bilder jedoch sind sie nicht identisch. Beide Verfahren haben ihre Nachteile. Aufgrund numerischer Aufrundungen kann die erste Verwirklichung kleine Löcher in dem bezüglich der Schrägstellung korrigierten Bild haben, während die zweite Verwirklichung fehlerhaft plazierte Ecken ergeben kann. Obgleich jedes Verfahren zufriedenstellende Ergebnisse abgeben kann, wird das zweite Verfahren bevorzugt.
  • Nach dem der PanaMark bezüglich der Schrägstellung korrigiert wurde, kann der begrenzende Kasten, der mit Bezug auf 9 berechnet den PanaMark umgibt, zu "locker" sein, d.h. es gibt mehr Bildpunkte innerhalb des Kastens als für die Datenentnahme notwendig. Falls z.B. die ursprüngliche Bitmap 8 × 7 Bildpunkte und die abschließende Bitmap 6 × 6 Bildpunkte beträgt, wie in 16A bis 16D gezeigt, müssen zwei Spalten und eine Zeile beseitigt werden. Daher wird ein anderer Satz von Operationen ganz ähnlich dem ursprünglichen, mit Bezug auf 9 beschriebenen Lokalisierungsschritt mit geringfügig engeren Schwellwerten durchgeführt, da es nicht mehr erforderlich ist, sich um das Abschneiden der Ecken des PanaMarks zu sorgen.
  • An diesem Punkt ist der PanaMark lokalisiert, bezüglich einer Schrägstellung korrigiert und eng beschnitten. Der nächste Schritt ist, die Datenbits auszulesen, welches den PanaMark aus dem Bildbereich, in dem jedes Bit als eine Sammlung schwarzer oder weißer Bildpunkte repräsentiert wird, in der bevorzugten Ausführungsform auf ein 20 × 20-Feld logischer Werte transformiert. Es wird bemerkt, dass dadurch, dass die PanaMark-Symbolik frei von einer Taktung ist, es keine vorbestimmten Bezugsmuster gibt, um bei der Orientierung des Leseprozesses zu helfen. Jedoch ist die örtliche Größe des PanaMarks im Voraus bekannt, z.B. ein Quadrat, dass in der bevorzugten Ausführungsform 20 Bits auf jeder Seite misst. Weil die Bits in der Markierung während des Codierungsprozesses pseudo-zufällig angeordnet wurden, wird darüber hinaus eine bestimmte Zeile oder Spalte von Bildpunkten eine größere Verteilung von Schwarz-Weiß-Übergängen und Weiß-Schwarz-Übergängen nahe den Rändern der logischen Zeilen und Spalten aufweisen, und eine niedrigere Verteilung nahe den Zentren. Dieser Prozess ist in der '280-Anmeldung vollständig beschrieben. Sobald die horizontalen und vertikalen Mittellinien durch den in der '280-Anmeldung beschriebenen Prozess eingerichtet worden sind, werden die Bits aus dem PanaMark ausgelesen durch Aufzeichnung des Bildpunktwertes, der am Schnittpunkt jeder horizontalen und vertikalen Mittellinie liegt (z.B. durch Setzen jedes "weißen" Bildpunktwertes auf Null und jedes "schwarzen" Bildpunktwertes auf Eins.
  • Wie in 18A gezeigt, korrespondiert der grundlegende Taktungsprozess mit dem Start in der oberen linken(Nordwest-)Ecke des PanaMarks 184 und dem Auslesen der Daten in einer Links-nach-rechts- und Oben-nach-unten-Reihenfolge. Wie in 18B bis 18D gezeigt, kann dasselbe Paradigma angewendet werden, jedoch mit Beginn in einer anderen der drei Ecken (Südwest, Nordost, Südost). In der Theorie sollten die Ausgaben von diesen vier alternativen Taktungen dieselben sein. Wegen der Abtastvariationen und Rundungsfehler können die Ergebnisse jedoch tatsächlich unterschiedlich sein. Auf der Basis der Rückmeldungen von dem ECC-Schritt gibt es jedoch eine Auswahl der besten der vier unterschiedlichen Auslesungen, die in den in den 18A bis 18D beschriebenen vier alternativen Richtungen gemacht wurden. Mit anderen Worten: falls das ECC zwei Fehler während der Links-nach-rechts-, Oben-nach-unten-Taktung berichtet, während die anderen Taktungen alle 15 Fehler zurückgeben, dann sollte das erste der Ergebnisse verwendet und die anderen verworfen werden. Dies hat den Effekt der Reduzierung der gesamten Fehlerrate mit höherer Wahrscheinlichkeit.
  • Während die vorliegende Erfindung mit Bezug auf die bevorzugten Ausführungsformen und verschiedener Aspekte davon besonders gezeigt und beschrieben wurde, ist den in der Technik bewanderten Personen offenkundig, dass verschiedene Veränderungen und Modifikationen gemacht werden können, ohne von dem Umfang der angefügten Ansprüche abzuweichen.

Claims (6)

  1. Verfahren zum Decodieren willkürlich angeordneter Informationen, die auf ein Druckmedium in Gestalt einer Bitmap aus Zeilen und Spalten von Datenpixeln gedruckt sind, die codierte Daten darstellen, wobei jedes der Datenpixel entweder eine erste oder eine zweite Farbe aufweist und sich auf dem Druckmedium zudem andere gedruckte Informationen befinden, enthaltend folgende Schritte: – Abtasten der Druckmediums, um die Bitmap und die anderen Informationen zu digitalisieren, – Formatieren der Bitmap und der anderen Informationen zu einer Grausstufendarstellung auf Pixelbasis; – Einstellen des Intensitätsschwellenwertes auf der Basis der Graustufendarstellung derart, dass die Pixel über dem Schwellenwert einer ersten Farbe entsprechen und die Pixel unter diesem Schwellenwert einer zweiten Farbe entsprechen; – Ermitteln des Schrägstellungswinkels der digitalisierten Bitmap; – Geraderichten der digitalisierten Bitmap, so dass der Schrägstellungswinkel auf im Wesentlichen Null reduziert wird; – Beschneiden der digitalisierten Bitmap; – Auslesen von Binärdaten aus der digitalisierten Bitmap in einem vorbestimmten Muster, um eine eindimensionale Anordnung von Digitaldaten zu erzeugen; – Ordnen der eindimensionalen Anordnung von Digitaldaten; – Fehlerkorrigieren der geordneten eindimensionalen Anordnung von Digitaldaten, um eine im Wesentlichen fehlerfreie Digitaldarstellung der codierten Informationen zu erzeugen; – und gekennzeichnet durch die Schritte des Ermittelns, der Zeilen- und Spaltengrenzen durch Ermitteln der Zahl der Pixel erster Farbe in jeder Zeile und jeder Spalte das abgetasteten Druckmediums und des anschließenden Vergleichens der Zahl erster Pixel in jeder Zeile bzw. Spalte mit einem vorbestimmten Schwellenwert vor dem Schritt des Geraderichtens.
  2. Verfahren nach Anspruch 1, bei dem der Schrägstellungswinkel-Ermittlungsschritt entweder mit Hilfe eines Vorlagenmaschinen-Verfahrens oder eines Hough-Transformations-Verfahrens erfolgt.
  3. Verfahren nach Anspruch 1 oder 2, bei dem der Geraderichtschritt entweder mit Hilfe eines Scherdrehverfahrens oder eines trigonometrischen Verfahrens erfolgt.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem der Leseschritt die Binärdaten in jeder von vier alternierenden Richtungen liest und vier alternierende eindimensionale Anordnungen von Digitaldaten erzeugt und der Korrekturschritt die eindimensionalen Anordnungen von Digitaldaten mit der geringsten Zahl von Fehlern für die Ausgabe wählt.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem der Ordnungsschritt wiederholt diese oder jede eindimensionale Anordnung von Digitaldaten durch alternierende zugewiesene Schlüssel ordnet, bis die Fehler, die durch diese Fehlerkorrektur erfasst werden, unter einen vorbestimmten Schwellenwert fallen.
  6. Verfahren nach einem der Ansprüche 1 bis 6, bei dem der Leseschritt folgende Schritte enthält: – Bestimmen der Anzahl horizontaler und vertikaler Ränder in jeder entsprechenden Zeile und Spalte der Bitmap; – Bestimmen der Zeilenmittellinien aus den logischen Minimain den Horizontalrand-Zählungen; – Bestimmen der Spaltenmittellinien aus den logischen Minimain den Vertikalrand-Zählungen; und – Auslesen von Binärdaten, die sich am Schnittpunkt jeder Zeilenmittellinie und Spaltenmittellinie befinden, in einem vorbestimmten Muster, um eine eindimensionale Digitaldarstellung der digitalisierten Bitmap zu erzeugen.
DE69929572T 1998-06-01 1999-05-28 Verfahren zum Lesen eines zweidimensionalen Strichcode ohne Taktsignal und ohne Ränder Expired - Fee Related DE69929572T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/088,189 US6201901B1 (en) 1998-06-01 1998-06-01 Border-less clock free two-dimensional barcode and method for printing and reading the same
US88189 1998-06-01

Publications (2)

Publication Number Publication Date
DE69929572D1 DE69929572D1 (de) 2006-04-13
DE69929572T2 true DE69929572T2 (de) 2006-08-10

Family

ID=22209897

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69929572T Expired - Fee Related DE69929572T2 (de) 1998-06-01 1999-05-28 Verfahren zum Lesen eines zweidimensionalen Strichcode ohne Taktsignal und ohne Ränder

Country Status (7)

Country Link
US (3) US6201901B1 (de)
EP (1) EP0962883B1 (de)
JP (1) JP2000132651A (de)
CN (1) CN1161705C (de)
CA (1) CA2271523A1 (de)
DE (1) DE69929572T2 (de)
HK (1) HK1024550A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020107207A1 (de) 2020-03-17 2021-09-23 Krones Aktiengesellschaft Etikettensatz, Vorrichtung und Verfahren zur Erkennung von Varianten von Etiketten

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7028899B2 (en) * 1999-06-07 2006-04-18 Metrologic Instruments, Inc. Method of speckle-noise pattern reduction and apparatus therefore based on reducing the temporal-coherence of the planar laser illumination beam before it illuminates the target object by applying temporal phase modulation techniques during the transmission of the plib towards the target
EP0999519B1 (de) * 1998-11-06 2006-07-26 Datalogic S.P.A. Verfahren zur Korrektur der Verzerrung beim Abtasten eines optischen Codes
JP3458737B2 (ja) * 1998-11-27 2003-10-20 株式会社デンソー 2次元コードの読取方法及び記録媒体
GB2388230B (en) * 1998-12-16 2003-12-17 Matsushita Electric Ind Co Ltd A method for locating and reading a two-dimensional barcode
US6082619A (en) * 1998-12-16 2000-07-04 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode
US6565003B1 (en) 1998-12-16 2003-05-20 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode
JP2000341501A (ja) * 1999-03-23 2000-12-08 Minolta Co Ltd 画像処理装置および画像処理方法、ならびに画像処理プログラムを記録した記録媒体
US7406214B2 (en) 1999-05-19 2008-07-29 Digimarc Corporation Methods and devices employing optical sensors and/or steganography
US7079712B1 (en) * 1999-05-25 2006-07-18 Silverbrook Research Pty Ltd Method and system for providing information in a document
US6674919B1 (en) * 1999-09-21 2004-01-06 Matsushita Electric Industrial Co., Ltd. Method for determining the skew angle of a two-dimensional barcode
US8391851B2 (en) 1999-11-03 2013-03-05 Digimarc Corporation Gestural techniques with wireless mobile phone devices
US6678425B1 (en) * 1999-12-06 2004-01-13 Xerox Corporation Method and apparatus for decoding angular orientation of lattice codes
US6880755B2 (en) * 1999-12-06 2005-04-19 Xerox Coporation Method and apparatus for display of spatially registered information using embedded data
US6935562B2 (en) 1999-12-06 2005-08-30 Xerox Corporation Operations on images having glyph carpets
US6708064B2 (en) * 2000-02-24 2004-03-16 Ali R. Rezai Modulation of the brain to affect psychiatric disorders
US20060082557A1 (en) * 2000-04-05 2006-04-20 Anoto Ip Lic Hb Combined detection of position-coding pattern and bar codes
US7107453B2 (en) * 2000-05-25 2006-09-12 Hewlett-Packard Development Company, L.P. Authenticatable graphical bar codes
US6751352B1 (en) * 2000-05-25 2004-06-15 Hewlett-Packard Development Company, L.P. Method and apparatus for generating and decoding a visually significant barcode
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
US6456798B1 (en) * 2000-08-09 2002-09-24 Eastman Kodak Company Barcode and data storage arrangement on a photographic element
JP3766586B2 (ja) 2000-10-02 2006-04-12 株式会社日立製作所 光学エンジン、映像表示装置及び色切替方法
US6938017B2 (en) * 2000-12-01 2005-08-30 Hewlett-Packard Development Company, L.P. Scalable, fraud resistant graphical payment indicia
US7075676B2 (en) * 2000-12-19 2006-07-11 Sharp Laboratories Of America, Inc. Method for attaching file as a barcode to the printout
US7411593B2 (en) 2001-03-28 2008-08-12 International Business Machines Corporation Image rotation with substantially no aliasing error
US6814289B2 (en) * 2001-05-30 2004-11-09 Sandia Corporation Self-registering spread-spectrum barcode method
US6722567B2 (en) * 2001-06-07 2004-04-20 Hewlett-Packard Development Company, L.P. Generating and decoding graphical bar codes
US6895116B2 (en) * 2001-06-07 2005-05-17 Hewlett-Packard Development Company, L.P. Automatically extracting graphical bar codes
US20030072639A1 (en) * 2001-10-17 2003-04-17 Applied Materials, Inc. Substrate support
US6631012B2 (en) 2001-12-11 2003-10-07 Pitney Bowes Inc. Apparatus and method for printing two-dimensional barcode and articles incorporating such barcode
US7228428B2 (en) * 2001-12-14 2007-06-05 Xerox Corporation Method and apparatus for embedding encrypted images of signatures and other data on checks
ATE408202T1 (de) * 2002-02-04 2008-09-15 Baumer Optronic Gmbh Redundanter zweidimensionaler code und decodierverfahren
US7085432B2 (en) * 2002-06-10 2006-08-01 Lockheed Martin Corporation Edge detection using Hough transformation
US7236979B2 (en) * 2002-06-26 2007-06-26 Microsoft Corporation Menu-less system and method for interactively manipulating and reformatting data entered in a tabular format in a data processing application
KR100899167B1 (ko) * 2002-07-08 2009-05-27 베리텍 인코포레이티드 엔코드된 정보를 가진 심벌을 판독하는 방법
CN1396538A (zh) 2002-08-07 2003-02-12 深圳矽感科技有限公司 文字图表等一般载体上的信息电子化的方法及其系统
CN102999746B (zh) * 2002-09-26 2016-11-23 Ip解决方案株式会社 使用光点图形的信息重放、输入输出方法、信息重放装置、便携信息输入输出装置以及电子玩具
US7305131B2 (en) * 2002-10-01 2007-12-04 Hewlett-Packard Development Company, L.P. Extracting graphical bar codes from an input image
WO2004090798A1 (en) * 2003-04-07 2004-10-21 Silverbrook Research Pty Ltd Sensing device for coded data
CN1217291C (zh) * 2003-04-23 2005-08-31 上海龙贝信息科技有限公司 全方位信息同步二维条形码系统及识读方法
CN1458619A (zh) * 2003-05-30 2003-11-26 上海龙贝信息科技有限公司 双向可读二维条形码系统及其识读方法
US7156311B2 (en) * 2003-07-16 2007-01-02 Scanbuy, Inc. System and method for decoding and analyzing barcodes using a mobile device
JP3635374B1 (ja) * 2003-11-14 2005-04-06 有限会社Sires デジタル情報坦体
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
CN100383818C (zh) * 2004-03-12 2008-04-23 上海龙贝信息科技有限公司 编码区域长宽比例连续可变的二维条形码系统
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
US8215556B2 (en) * 2004-06-28 2012-07-10 Konica Minolta Laboratory U.S.A., Inc. Color barcode producing, reading and/or reproducing method and apparatus
US8843978B2 (en) * 2004-06-29 2014-09-23 Time Warner Cable Enterprises Llc Method and apparatus for network bandwidth allocation
US7309015B2 (en) * 2004-07-14 2007-12-18 Scanbuy, Inc. Mobile device gateway providing access to instant information
US7533817B2 (en) * 2004-08-09 2009-05-19 Konica Minolta Systems Laboratory, Inc. Color barcode producing method and apparatus, color barcode reading method and apparatus and color barcode reproducing method and apparatus
US20060043189A1 (en) * 2004-08-31 2006-03-02 Sachin Agrawal Method and apparatus for determining the vertices of a character in a two-dimensional barcode symbol
US7267272B2 (en) * 2004-09-28 2007-09-11 Markem Corporation Variable stride bit blitting
TWI276986B (en) 2004-11-19 2007-03-21 Au Optronics Corp Handwriting input apparatus
US20060119898A1 (en) * 2004-12-07 2006-06-08 Lexmark International, Inc. Methods for providing encoded visual borders on a scannable document
US20060157574A1 (en) * 2004-12-21 2006-07-20 Canon Kabushiki Kaisha Printed data storage and retrieval
US7437120B2 (en) * 2005-01-31 2008-10-14 Xerox Corporation Optical sensor for monitoring motion of a blank sheet
US7567565B2 (en) * 2005-02-01 2009-07-28 Time Warner Cable Inc. Method and apparatus for network bandwidth conservation
US7669769B2 (en) * 2005-03-28 2010-03-02 Konica Minolta Systems Laboratory, Inc. Systems and methods for preserving and maintaining document integrity
US7523855B2 (en) * 2005-03-28 2009-04-28 Konica Minolta Systems Laboratory, Inc. Systems and methods for preserving and maintaining document integrity
ITMI20050824A1 (it) * 2005-05-06 2006-11-07 Secure Edge S R L Codice grafico bidimensionale ad alta densita' e sistema di codifica e sistema di decodifica basati su tale codice
WO2006136205A1 (en) * 2005-06-21 2006-12-28 E + E Holding Bv Method and apparatus for printing barcodes
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
US7689004B2 (en) * 2006-09-12 2010-03-30 Seiko Epson Corporation Method and apparatus for evaluating the quality of document images
US7766241B2 (en) * 2006-09-29 2010-08-03 Konica Minolta Systems Laboratory, Inc. Barcode for two-way verification of a document
US7628330B2 (en) * 2006-09-29 2009-12-08 Konica Minolta Systems Laboratory, Inc. Barcode and decreased-resolution reproduction of a document image
US8172144B2 (en) * 2007-05-14 2012-05-08 Konica Minolta Business Technologies, Inc. Media storing code detecting program, code detecting method, and image forming apparatus
GB2451436B (en) * 2007-07-27 2012-09-19 Hewlett Packard Development Co An encoder and decoder and methods of encoding and decoding sequence information
US8249391B2 (en) * 2007-08-24 2012-08-21 Ancestry.com Operations, Inc. User interface method for skew correction
JP5002497B2 (ja) * 2008-03-11 2012-08-15 株式会社Pfu 画像処理装置、画像処理方法および画像処理プログラム
JP2010028309A (ja) * 2008-07-16 2010-02-04 Canon Inc 装置、方法、プログラムおよび記憶媒体
US9547799B2 (en) * 2008-07-17 2017-01-17 Sharp Laboratories Of America, Inc. Methods and systems for content-boundary detection
US8370759B2 (en) 2008-09-29 2013-02-05 Ancestry.com Operations Inc Visualizing, creating and editing blending modes methods and systems
US9160885B2 (en) * 2009-07-02 2015-10-13 Hewlett-Packard Development Company, L.P. Skew detection
US8531401B2 (en) 2009-08-13 2013-09-10 Hewlett-Packard Development Company, L.P. Computer accessory device
US20110066504A1 (en) * 2009-09-17 2011-03-17 Ehud Chatow System for providing promotion information
US8873864B2 (en) * 2009-12-16 2014-10-28 Sharp Laboratories Of America, Inc. Methods and systems for automatic content-boundary detection
US9104934B2 (en) 2010-03-31 2015-08-11 Hand Held Products, Inc. Document decoding system and method for improved decoding performance of indicia reading terminal
US9298964B2 (en) 2010-03-31 2016-03-29 Hand Held Products, Inc. Imaging terminal, imaging sensor to determine document orientation based on bar code orientation and methods for operating the same
JP2011227543A (ja) * 2010-04-15 2011-11-10 Panasonic Corp 帳票処理装置及び帳票処理方法及び記録媒体
US8413903B1 (en) 2011-04-27 2013-04-09 A9.Com, Inc. Decoding barcodes
CN104518800B (zh) * 2013-09-26 2018-05-08 北大方正集团有限公司 电子监管码的数据压缩方法及装置
CN103530669A (zh) * 2013-11-08 2014-01-22 成都博格科技有限公司 一种数据信息的二维码编码方法
US9324000B2 (en) * 2014-07-25 2016-04-26 Ca, Inc. Identifying objects in an image using coded reference identifiers
US10248825B2 (en) 2014-08-29 2019-04-02 Hewlett-Packard Development Company, L.P. Image processing
US10504230B1 (en) 2014-12-19 2019-12-10 Amazon Technologies, Inc. Machine vision calibration system with marker
CN105187686B (zh) * 2015-09-07 2018-11-09 华东师范大学 一种基于cis扫描的图像采集、识别及阅读方法与系统
JP2018055496A (ja) * 2016-09-29 2018-04-05 日本電産サンキョー株式会社 媒体認識装置および媒体認識方法
KR101893520B1 (ko) * 2016-12-19 2018-08-30 한국전자통신연구원 2차원 바코드 생성 장치, 2차원 바코드 정보 추출 장치 및 2차원 바코드 생성 방법
CN110569946B (zh) * 2019-09-05 2022-06-10 福州三龙喷码科技有限公司 一种适用于喷码机的qr码生成方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5091966A (en) 1990-07-31 1992-02-25 Xerox Corporation Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes
CA2077969C (en) * 1991-11-19 1997-03-04 Daniel P. Huttenlocher Method of deriving wordshapes for subsequent comparison
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
US5337362A (en) 1993-04-15 1994-08-09 Ricoh Corporation Method and apparatus for placing data onto plain paper
US5862260A (en) * 1993-11-18 1999-01-19 Digimarc Corporation Methods for surveying dissemination of proprietary empirical data
USD377501S (en) 1994-01-14 1997-01-21 Computer Based Controls, Inc. Font of machine readable patterns
JP2938338B2 (ja) * 1994-03-14 1999-08-23 株式会社デンソー 二次元コード
US6006993A (en) * 1994-08-17 1999-12-28 Metrologic Instruments, Inc. Holographic laser scanning system for carrying out laser beam scanning operations with improved scan angle multiplication efficiency and carrying out light collection operations with improved light collection efficiency
US5517587A (en) * 1994-09-23 1996-05-14 International Business Machines Corporation Positioning method and apparatus for line scanned images
US5737442A (en) * 1995-10-20 1998-04-07 Bcl Computers Processor based method for extracting tables from printed documents
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
US5974199A (en) * 1997-03-31 1999-10-26 Eastman Kodak Company Method for scanning and detecting multiple photographs and removing edge artifacts
US6014464A (en) * 1997-10-21 2000-01-11 Kurzweil Educational Systems, Inc. Compression/ decompression algorithm for image documents having text graphical and color content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102020107207A1 (de) 2020-03-17 2021-09-23 Krones Aktiengesellschaft Etikettensatz, Vorrichtung und Verfahren zur Erkennung von Varianten von Etiketten

Also Published As

Publication number Publication date
CN1161705C (zh) 2004-08-11
US20010007116A1 (en) 2001-07-05
DE69929572D1 (de) 2006-04-13
HK1024550A1 (en) 2000-10-13
EP0962883A2 (de) 1999-12-08
CA2271523A1 (en) 1999-12-01
US6201901B1 (en) 2001-03-13
US20010005867A1 (en) 2001-06-28
EP0962883A3 (de) 2002-05-22
CN1245944A (zh) 2000-03-01
JP2000132651A (ja) 2000-05-12
US6418244B2 (en) 2002-07-09
EP0962883B1 (de) 2006-01-25

Similar Documents

Publication Publication Date Title
DE69929572T2 (de) Verfahren zum Lesen eines zweidimensionalen Strichcode ohne Taktsignal und ohne Ränder
DE19960555B4 (de) Verfahren zum Auffinden und Lesen eines zweidimensionalen Strichcodes
DE19814075B4 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
DE69635512T2 (de) Verfahren zum Lesen eines zweidimensionalen Strichcodes ohne Taktsignal
DE60211307T2 (de) Mit informationskodierenden grafischen symbolen gedrucktes dokument
DE60013101T2 (de) Zweidimensionales codemuster zum speichern biometrischer informationen und vorrichtung zum lesen dieser informationen
DE10036110B4 (de) Verfahren zur Bestimmung des Schrägwinkels eines zweidimensionalen Barcodes
DE69835358T2 (de) Verfahren zur Korrektur der Verzerrung beim Abtasten eines optischen Codes
EP1260933B1 (de) Verfahren zum Erfassen von zweidimensionalen Codes
US6565003B1 (en) Method for locating and reading a two-dimensional barcode
DE60213657T2 (de) Erzeugung von graphischen kodes durch halbtonrasterung mit eingefügter graphischer kodierung
DE69926205T2 (de) Artefaktentfernungstechnik für schiefenkorrigierte bilder
DE3716787C2 (de)
DE69633809T2 (de) Verarbeitung von maschinell lesbaren Vordrucken
DE69026041T2 (de) Identifikation, Kennzeichnung und Segmentierung der halbtongerasterten oder punktierten Bereiche eines Binärbildes
DE69721941T2 (de) Gerät und Verfahren zum Extrahieren von Mustern
DE69830383T2 (de) Kodierverfahren
DE10311715A1 (de) Bildverarbeitungsvorrichtung, Bildverarbeitungsverfahren und Speichermedium für das Bildverarbeitungsprogramm
CH708993B1 (de) Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes.
DE69935392T2 (de) Dokumentverarbeitung
DE19926194C2 (de) Datenstreifen und Verfahren zur Kodierung und Dekodierung gedruckter Daten
DE112010001320T5 (de) Bildverarbeitungsvorrichtung, Bildverarbeitungsverfahren, Bilderverarbeitungsprogramm und Speichermedium
DE10141876A1 (de) Verfahren zur Erkennung eines Codes
DE69929110T2 (de) Einrichtung und Verfahren zur Erzeugung von Druckdaten des zweidimensionalen Koden und zugehöriges Aufzeichnungsmedia
DE69732508T2 (de) Laser-Strichcodeleser für einen Brennstab in einem Siedewasserkernreaktor

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee