CH708994B1 - Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes. - Google Patents

Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes. Download PDF

Info

Publication number
CH708994B1
CH708994B1 CH00512/15A CH5122015A CH708994B1 CH 708994 B1 CH708994 B1 CH 708994B1 CH 00512/15 A CH00512/15 A CH 00512/15A CH 5122015 A CH5122015 A CH 5122015A CH 708994 B1 CH708994 B1 CH 708994B1
Authority
CH
Switzerland
Prior art keywords
image data
digital image
linear segments
gradient
segments
Prior art date
Application number
CH00512/15A
Other languages
English (en)
Inventor
Aspert François
Bégard Julien
Leroux David
Original Assignee
Sicpa Holding Sa
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 Sicpa Holding Sa filed Critical Sicpa Holding Sa
Publication of CH708994B1 publication Critical patent/CH708994B1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1478Methods for optical code recognition the method including quality enhancement steps adapting the threshold for pixels in a CMOS or CCD pixel sensor for black and white recognition

Abstract

Die Erfindung betrifft ein Verfahren und ein Gerät zum Identifizieren eines zweidimensionalen Punktcodes in digitalen Bilddaten des Punktcodes, wobei der Punktcode Elemente einer ersten und zweiten Art umfasst, die in einem geordneten Gitter angeordnet sind, und eine Kontur aufweist, die eine L-förmige durchgehende Linie (11´) ohne Übergänge zwischen den Elementen erster und zweiter Art umfasst, wobei das Verfahren umfasst: Berechnen eines Gradientenfelds aus den digitalen Bilddaten; Berechnen von Grössenordnungsdaten des Gradienten; Durchführen eines Schwellenwertvorgangs; Detektieren von linearen Segmenten (111´, 112´) in den so erhaltenen Bilddaten; Identifizieren von Paaren der detektierten linearen Segmente basierend auf einem Winkelkriterium und einem Abstandskriterium und Abtasten teilweise digitaler Bilddaten, welche einem rechteckigen Bereich in den digitalen Bilddaten entsprechen, und Detektieren einer Anwesenheit von Elementen der ersten und zweiten Art in teilweise digitalen Bilddaten, wobei der rechteckige Bereich von einem der identifizierten Paare detektierter linearer Segmente definiert wird.

Description

Technisches Gebiet
[0001] Die vorliegende Erfindung betrifft das Identifizieren eines zweidimensionalen Punktcodes (Barcodes). Insbesondere betrifft die vorliegende Erfindung ein Verfahren zum Identifizieren eines zweidimensionalen Punktcodes in digitalen Bilddaten des Punktcodes, ein Gerät, das dazu konfiguriert ist, einen zweidimensionalen Punktcode zu identifizieren, insbesondere tragbare Vorrichtungen und fixierte modulartige Vorrichtungen. Die vorliegende Erfindung betrifft auch ein entsprechendes computerlesbares Medium.
Hintergrund
[0002] Heutzutage sind eindimensionale und zweidimensionale Punktcodes in der Form sogenannter «Etiketten» allgegenwärtig. Insbesondere finden sich solche Punktcodes auf Konsumgütern, elektronischen und nichtelektronischen Vorrichtungen, Maschinen, Fahrzeugen und auch auf Dokumenten, wie etwa Tickets, Papieren, Banknoten etc. Neben dem eindimensionalen Punktcode hat auch der zweidimensionale Punktcode in den letzten Jahren an Bedeutung gewonnen. Während der eindimensionale Punktcode klassisch auf das Kodieren von Information nur in einer linearen Dimension beschränkt ist, erlaubt der zweidimensionale Punktcode, der in einem geordneten Gitter angeordnete Elemente zumindest einer ersten und zweiten Art umfasst, eine deutliche Erhöhung der Datenmenge, die kodiert werden kann.
[0003] Fig. 1A und 1B zeigen schematische Ansichten von herkömmlichen zweidimensionalen Punktcodes, die Information kodieren, indem sie Elemente zumindest einer ersten und einer zweiten Art, wie etwa Rechtecke, Punkte, Dreiecke und dergleichen, zum Kodieren von Information anordnen. Zumindest zwei unterscheidbare Arten von Elementen werden verwendet, um Information in Form von Binäreinheiten, d.h. Bits, zu kodieren. Beispielsweise kann ein weissgedrucktes Quadrat als Element einer ersten Art die Information «0» darstellen, während ein schwarzgedrucktes Quadrat als Element einer zweiten Art die Information «1» darstellt.
[0004] Fig. 1A zeigt eine schematische Ansicht eines zweidimensionalen Punktcodes gemäss dem GS1 (Marke) DataMatrix ECC 200 Standard (wobei GS1 ein Internationaler Verband ist, der Standards für zweidimensionale Punktcodes bereitstellt). Dieser zweidimensionale Punktcode umfasst zwei Hauptbereiche, nämlich das sogenannte «Findermuster» 10 und die Daten 20. Die letzteren Daten 20 tragen die tatsächlichen Nutzlastdaten des Punktcodes und umfassen Elemente einer ersten und zweiten Art, 21, 22, die in einem geordneten Gitter angeordnet sind. Das Findermuster 10 besteht auch aus den Elementen der ersten und zweiten Art und ist wiederum in das sogenannte «L-Findermuster» 11 (auch als L-förmige durchgehende Linie, L-Linie, durchgehende Linie etc. bezeichnet) und die sogenannte «Taktspur» 12 (auch als Taktlinie, L-förmige Taktlinie etc. bezeichnet) unterteilt.
[0005] Gemäss einer Konvention ist die Taktlinie 12 durch lineares Alternieren der Anordnung der Elemente erster und zweiter Art 21, 22 ausgebildet. Daher stellt die Taktlinie 12 Übergänge zwischen den Elementen erster und zweiter Art 21, 22 bereit, während die durchgehende Linie 11 dies nicht tut. Beide Segmente (oder Schenkel) von sowohl der durchgehenden Linie 11 als auch der Taktlinie 12 schneiden einander an einer Ecke im Wesentlichen in einem rechten Winkel. Somit wird eine rechteck-förmige Kontur des zweidimensionalen Punktcodes durch die durchgehende Linie 11 und die Taktlinie 12 ausgebildet.
[0006] Gemäss einer anderen Konvention ist das schneidende Element (Kreuzungselement) der beiden Segmente der Taktlinie 12 von einer vorbestimmten Art, nämlich entweder der ersten Art 21 oder der zweiten Art 22. Insbesondere definiert eine aktuelle Konvention dieses Kreuzungselement 13 als helles Element, beispielsweise im Zusammenhang mit der vorliegenden Offenbarung ein Element der ersten Art, im Gegensatz zu dunklen Elementen, beispielsweise im Zusammenhang mit der vorliegenden Offenbarung ein Element der zweiten Art.
[0007] Während Fig. 1A eine quadratische Version des Punktcodes von DataMatrix 1 zeigt, sind die aktuellen Konventionen nicht auf quadratische Punktcodes beschränkt und Fig. 1B zeigt ein Beispiel einer rechteckigen Implementierung 1 ́. Der zweidimensionale Punktcode ist wiederum von einer Kontur, die eine L-förmige durchgehende Linie 11 ́ und eine L-förmige Taktlinie 12 ́ umfasst, abgegrenzt. Jedoch kann, da die allgemeine Kontur nicht auf Quadrate beschränkt ist, ein Segment 111 ́ der durchgehenden Linie 11 ́ kürzer sein als das andere Segment 112 ́ der durchgehenden Linie 11 ́. Dementsprechend kann ein Segment 121 ́ der Taktlinie 12 ́ kürzer sein als das andere Segment 122 ́.
[0008] Im Allgemeinen können die Elemente der ersten und zweiten Art 21, 22 jede unterscheidbare Form annehmen. Dieser Aspekt ist in Fig. 2A dargestellt, die das Element erster Art 21 als ein allgemeines rechts-schraffiertes Quadrat/Rechteck und das Element zweiter Art als ein allgemeines links-schraffiertes Quadrat/Rechteck 22 zeigt. Diese Generalisierung rührt von der Tatsache, dass ein zweidimensionaler Punktcode nicht notwendigerweise mittels beispielsweise einem schwarzen Farbstoff auf weissem Papier gedruckt wird. Vielmehr kann der zweidimensionale Punktcode auch mit Hilfe von farbigen Farbstoffen oder Druckfarben; Thermodrucken auf wärmeempfindlichen Papier; mechanischen Mitteln, wie etwa Fräsen, Prägen, Schleifen etc.; oder physikalischen/chemischen Mitteln, wie etwa Laserätzen, Säureätzen etc. implementiert werden. Jede Art der Implementierung ist möglich, sofern die Elemente in ihrer entsprechenden Art unterschieden werden können, beispielsweise in digitalen Bilddaten, die vom zweidimensionalen Punktcode erhalten wurden. Beispielsweise kann eine Digitalkamera digitale Bilddaten eines zweidimensionalen Punktcodes, der auf ein Papierdokument gedruckt oder auf eine Metalldose lasergeätzt ist, erhalten.
[0009] Zudem können die verschiedenen Drucktechniken auch zu unterschiedlichen «Qualitäten» eines zweidimensionalen Punktcodes führen. Abgesehen von der mehr oder weniger optimalen Darstellung (wie beispielsweise in Fig. 1A und 1B gezeigt), sind auch Implementierungen mit individuellen Elementen, wie etwa den in Verbindung mit Fig. 2B gezeigten, möglich. In diesem Fall weist sogar die durchgehende Linie 11 zwischen zwei benachbarten Elementen derselben Art 22 Unterbrechungen auf. Jedoch kann die durchschnittliche Breite solcher Unterbrechungen weiterhin die Eigenschaften von keinem Übergang der Elementart zwischen benachbarten Elementen sicherstellen, wie mit Bezugszeichen 28 gezeigt. Andererseits kann ein Übergang zwischen der Elementart mittels der charakteristischen Breite der Unterbrechung, wie durch Bezugszeichen 29 gezeigt, weiterhin identifiziert werden.
[0010] Fig. 2C zeigt eine gewissermassen entgegengesetzte Situation, in der sogar diagonal benachbart liegende Elemente verschmelzen. Jedoch wird auch in diesem Fall angenommen, dass die Elemente erster und zweiter Art unterschieden werden können und dass ihre entsprechende Zuordnung zu Positionen in einem geordneten Gitter weiterhin möglich ist.
[0011] Das Dekodieren eines zweidimensionalen Punktcodes beginnt üblicherweise mit der Aufnahme eines photographischen Bildes des zweidimensionalen Punktcodes auf einem bestimmten Gegenstand, wie etwa einem Konsumgut oder einem Dokument. Diese Aufnahme wird dann in Form von digitalen Bilddaten erhalten, die entsprechende Pixelwerte für die Pixel der Aufnahme definieren. Diese digitalen Bilddateien werden anschliessend einer Bildbearbeitung mit Hilfe einer Verarbeitungseinheit (z.B. CPU, Computer, Server, eingebettetes System, ASIC etc.) unterzogen. Eine solche Verarbeitung kann in verschiedene einzelne Schritte unterteilt werden, um die im zweidimensionalen Punktcode kodierten Daten schlussendlich zu dekodieren.
[0012] Da die Aufnahme des zweidimensionalen Punktcodes üblicherweise mit einer willkürlichen Perspektive aufgenommen wird, bedeutet das, dass der exakte Abstand, Winkel und die allgemeine Ausrichtung der Aufnahmevorrichtung (z.B. eine CCD-Kamera) in Relation zum zweidimensionalen Punktcode unbekannt ist. Daher kann es notwendig sein, zuerst die Aufnahme oder den Bereich des zweidimensionalen Punktcodes innerhalb der gegebenen digitalen Bilddaten zu identifizieren. Sobald der zweidimensionale Punktcode in den digitalen Bilddaten identifiziert wurde, kann die Verarbeitung fortgeführt werden, die einzelnen Elemente der Punktcodedaten zu identifizieren und zu dekodieren.
[0013] Ferner kann die Gesamtbildqualität des Eingangsbilds niedrig sein, und gewöhnlich wird nur ein einziges Bild aufgenommen, so dass man mit dem zur Verfügung stehenden Eingang niedriger Qualität arbeiten muss. Die niedrige Bildqualität kann daher rühren, dass die zur Aufnahme des Bilds zur Verfügung stehende Zeit kurz ist und das Bild in Situationen aufgenommen werden muss, bei denen sich der Gegenstand/das Dokument, und somit der zweidimensionale Punktcode, mit erheblicher Geschwindigkeit bewegt. Beispielsweise kann ein zweidimensionaler Punktcode an einem Gegenstand in einer Produktionsstrasse (zum Beispiel einer Getränkedose in einer Abfülllinie) aufgebracht sein, so dass viele Gegenstände mit hoher Geschwindigkeit an einem Beobachtungspunkt vorbeilaufen, und möglicherweise ohne einen zur Aufnahme eines Bilds nutzbaren Halt. Speziell kann es der Fall sein, dass in der Tat nur ein paar Millisekunden zur Verfügung stehen, um das Bild aufzunehmen.
[0014] Zudem kann das Bild andere Merkmale enthalten, die von einem ähnlichen Aspekt wie das eines zweidimensionalen Punktcodes sein können. Erneut unter Bezug auf das Beispiel von Getränkedosen tragen derartige Dosen gewöhnlich graphische Elemente (z.B. Logo des Herstellers, Symbole, Foto usw.), Text und sogar andere Punktcodes (z.B. EAN). Folglich muss der zweidimensionale Punktcode nicht nur schnell aus Eingangsbilddaten niedriger Qualität identifiziert werden, sondern muss ausserdem eine Entscheidung darüber getroffen werden, welche Merkmale dem zweidimensionalen Punktcode tatsächlich entsprechen.
[0015] Allgemein umfassen die einleitenden Schritte der Bildverarbeitung das Identifizieren des zweidimensionalen Punktcodes in den Eingangsbilddaten, d.h. eine Bestimmung darüber, welche Teile der Eingangsbilddaten die zu dekodierenden Zieldaten umfassen und welche anderen Teile «nicht interessierenden» Merkmalen entsprechen, die nicht weiterverarbeitet werden müssen.
[0016] In herkömmlichen Konzepten wird eine Abfolge von verschiedenen Verarbeitungsstufen erwogen, die jedoch zu langsam sein können, um die Anforderungen nach einer schnellen Dekodierung/Identifizierung zu erfüllen. Ferner wird in den herkömmlichen Konzepten möglicherweise die Tatsache nicht richtig in Betracht gezogen, dass die Qualität von Eingangsbilddaten niedrig ist und/oder dass die Eingangsbilddaten andere Merkmale umfassen, die fälschlich als zweidimensionaler Punktcode interpretiert werden können.
[0017] Daher besteht ein Bedarf für eine verbesserte Zeiteffizienz und Robustheit der bestehenden Identifikations- und Dekodierungsschemata, so dass die Gesamtzeit, die von der Aufnahme eines Bildes von zweidimensionalen Punktcodes bis zum schlussendlichen Erhalt der dekodierten Nutzlastdaten des zweidimensionalen Punktcodes erforderlich ist, minimiert werden kann, und somit eine verlässliche Identifizierung des tatsächlichen zweidimensionalen Punktcodes erfolgen kann, selbst wenn die Eingangsbilddaten Merkmale umfassen, die der Erscheinung nach einem zweidimensionalen Punktcode ähnlich sind.
Zusammenfassung
[0018] Die obenerwähnten Aufgaben und Probleme werden vom Gegenstand der unabhängigen Patentansprüche gelöst. Weitere bevorzugte Ausführungsformen werden in den abhängigen Patentansprüchen definiert.
[0019] Gemäss einem Aspekt der vorliegenden Erfindung wird ein zweidimensionaler Punktcode in digitalen Bilddaten des Punktcodes identifiziert, wobei der Punktcode Elemente erster und zweiter Art umfasst, die in einem geordneten Gitter angeordnet sind und eine Kontur aufweisen, die eine L-förmige durchgehende Linie ohne Übergängen zwischen Elementen erster und zweiter Art umfasst, wobei das Verfahren umfasst: Berechnen eines Gradientenfelds aus den digitalen Bilddaten, wobei das Gradientenfeld einen Gradient des Pixelwerts in den digitalen Bilddaten spezifiziert; Berechnen von Grössenordnungsdaten des Gradienten aus dem Gradientenfeld; Durchführen eines Schwellenwertvorgangs anhand der berechneten Grössenordnungsdaten des Gradienten und Erhalten von Kantensegmentbilddaten; Detektieren von linearen Segmenten in den Kantensegmentbilddaten; Identifizieren von Paaren der detektierten linearen Segmente basierend auf einem Winkelkriterium zwischen zwei der detektierten linearen Segmente und basierend auf einem Abstandskriterium, das einen Abstand zwischen einer Extremität jedes der zwei linearen Segmente betrachtet; und Abtasten teilweiser digitaler Bilddaten, welche einem rechteckigen Bereich in den digitalen Bilddaten entsprechen, und Detektieren einer Anwesenheit von Elementen der ersten und zweiten Art in teilweisen digitalen Bilddaten, wobei der rechteckige Bereich von einem der identifizierten Paare detektierter linearer Segmente definiert wird.
[0020] Gemäss weiteren Aspekten werden ein verwandtes Gerät und ein verwandtes computerlesbares Medium bereitgestellt.
Kurzbeschreibung der Zeichnungen
[0021] Ausführungsformen der vorliegenden Erfindung, die zum besseren Verständnis der Konzepte der Erfindung präsentiert werden und die die Erfindung nicht einschränken, werden nun mit Bezug auf die Figuren beschrieben, in denen: <tb>Fig. 1A und 1B<SEP>schematische Ansichten einer quadratischen und rechteckigen Implementierung eines zweidimensionalen Punktcodes als eine mögliche Eingabe für Ausführungsformen der vorliegenden Erfindung zeigen; <tb>Fig. 2A<SEP>eine schematische Ansicht einer allgemeinen Implementierung eines zweidimensionalen Punktcodes als mögliche Eingabe für Ausführungsformen der vorliegenden Erfindung zeigt; <tb>Fig. 2B und 2C<SEP>schematische Ansichten einer weiteren Implementierung eines zweidimensionalen Punktcodes als mögliche Eingabe für Ausführungsformen der vorliegenden Erfindung zeigen; <tb>Fig. 3<SEP>ein Flussdiagramm eines Dekodierprozesses von zweidimensionalen Punktcodes, in dem Ausführungsformen der vorliegenden Erfindung eingesetzt werden können, zeigt; <tb>Fig. 4A bis 4J<SEP>zusätzliche schematische Ansichten, die der Beschreibung des in Verbindung mit Fig. 3 beschriebenen Dekodierprozesses beiliegen, zeigen; <tb>Fig. 5A und 5B<SEP>Flussdiagramme von Prozessdetails gemäss Ausführungsformen der vorliegenden Erfindung zeigen; <tb>Fig. 6A und 6B<SEP>Flussdiagramme von Prozessdetails gemäss Ausführungsformen der vorliegenden Erfindung zeigen; und <tb>Fig. 7A bis 7C<SEP>schematische Ansichten von Ausführungsformen von Geräten der vorliegenden Erfindung zeigen.
Detaillierte Beschreibung
[0022] Fig. 3 zeigt ein Flussdiagramm eines möglichen Dekodierprozesses, der das Identifizieren und das Dekodieren eines zweidimensionalen Punktcodes umfasst. Dieser Prozess beginnt bei einer Rohbildaufnahme des zweidimensionalen Punktcodes, der möglicherweise an einem Gegenstand oder einem Dokument angebracht ist. Die Aufnahme wird in Form digitaler Bilddaten von dem zweidimensionalen Punktcode beispielsweise durch herkömmliche Digitalkameras, Videokameras, CCD-Kameras, Scanner und dergleichen erhalten.
[0023] In einem ersten Schritt S1 (= SCHWELLENWERTVERFAHREN) werden die digitalen Roheingangsdateien zu Zwecken der Binärisierung der Eingangsaufnahme einem Schwellenwertvorgang unterzogen. Im Allgemeinen umfasst das Schwellenwertverfahren das Markieren einzelner Pixel der digitalen Bilddateien bezüglich ihres Pixelwerts. In der einfachsten Form des Schwellenwertverfahrens wird der Pixelwert eines jeden Pixels mit einem Schwellenwert verglichen und z.B. jedes Pixel mit einem Wert, der diesem Schwellenwert entspricht oder darüber liegt, einer ersten Gruppe zugeordnet, während alle Pixel mit einem Wert unterhalb des Schwellenwerts einer zweiten Gruppe zugeordnet werden. Auf diese Weise wird eine binärisierte Aufnahme erhalten, die nur Pixel einer ersten und zweiten Gruppe umfasst. Der Zweck des Schwellenwertverfahrens ist ein Mittel bereitzustellen, um in den digitalen Bilddaten Objekte (von möglichem Interesse) vom Hintergrund zu unterscheiden. Fig. 4A zeigt eine solche binärisierte Aufnahme nach dem Schwellenwertverfahren, bei der die zwei Gruppen durch die Farben schwarz und weiss repräsentiert werden. Die Aufnahme zeigt eine Reihe von Merkmalen, von denen eine bereits ein guter Kandidat für einen zweidimensionalen Punktcode ist.
[0024] Im optionalen Schritt S2 (= NEUSKALIERUNG) können die aus dem Schwellenwertverfahren erhaltenen Daten neu skaliert werden, um die Aufnahme um einen gegebenen Faktor herunterzuskalieren. Dies kann die ungefähre Lokalisierung des Punktcodes in den digitalen Bilddaten anschliessend wesentlich beschleunigen. Solange keine wichtigen Merkmale durch die Neudimensionierung verloren gehen, ist es offensichtlich, dass eine Reduktion der Daten zur Beschleunigung jedes nachfolgenden Scanvorgangs wesentlich beitragen kann. Wie in Fig. 4B gezeigt, führt ein Herunterskalieren um einen festgelegten Faktor von 16 dazu, dass die Breite und Höhe der neudimensionierten Aufnahme um einen Faktor von 4 reduziert wird.
[0025] In Schritt S3 (= AUSDEHNUNG) werden die dem Schwellenwertverfahren oder dem Schwellenwertverfahren und der Neudimensionierung unterzogenen Bilddaten einem Ausdehnungs- und Lochfüllungsverfahren unterzogen. Dieser Schritt umfasst entsprechend das Verschmelzen und Füllen benachbarter Pixel eines gegebenen Werts, z.B. schwarze Pixel, bis die Anzahl der Blöcke in der Aufnahme konstant ist. Mit anderen Worten können die Ausdehnungs- und Füllschritte so lange wiederholt werden, bis die Anzahl der Blöcke konstant bleibt. Fig. 4C zeigt den Prozess der Ausdehnung (links) und des Lochfüllens (rechts).
[0026] In diesem Schritt können die digitalen Bilddaten dennoch mehr als eine Form umfassen, die als möglicher Kandidat des zweidimensionalen Punktcodes interpretiert werden kann. Daher wird in einem nachfolgenden Schritt S4 (= KLECKS-DETEKTION) eine Detektion von Klecksen durchgeführt, um die Formen zu filtern. Dies kann das Suchen und Nummerieren aller Formen in der Aufnahme und das Löschen aller Formen mit einer geringen Fläche umfassen, so dass kleine Objekte und Störungen entfernt werden. Es kann dann in Betracht gezogen werden, die grösste Form zu behalten, von der man dann annimmt, dass sie der beste Kandidat für den zweidimensionalen Punktcode innerhalb der Bilddaten sei. Das Ergebnis dieses Vorgangs wird in Verbindung mit Fig. 4D gezeigt.
[0027] In einem nachfolgenden Schritt S5 (= EROSION) wird eine Erosion auf den nach Schritt S4 erhaltenen Daten durchgeführt, um die ursprünglichen Konturen der Aufnahme wiederherzustellen. Zu diesem Zweck kann in Betracht gezogen werden, dieselbe Anzahl von Erosionsschritten anzuwenden als die Anzahl von Schritten, die während der vorhergehenden Ausdehnung (siehe Schritt S3) angewandt wurden. Das Ergebnis an den bearbeiteten Bilddaten ist in Verbindung mit Fig. 4E gezeigt, in der auch eine Detailansicht der Erosion gezeigt ist (links).
[0028] In einem nachfolgenden Schritt S6 (= HERVORHEBEN DER GRENZEN) werden die Grenzen des zweidimensionalen Punktcodes hervorgehoben. Dies kann die Anwendung eines Filters auf die Bilddaten, der die Variation der Pixelintensität detektiert, umfassen. Im Allgemeinen kann ein herkömmlicher Kantendetektionsalgorithmus eingesetzt werden. Der resultierende Effekt auf die bearbeiteten Bilddaten ist wiederum in Verbindung mit Fig. 4F gezeigt.
[0029] In einem nachfolgenden Schritt S7 (= GRENZGLEICHUNGEN) werden die Grenzgleichungen berechnet. Dies kann beispielsweise durch herkömmliche Mittel, wie etwa das Detektieren von parametrischen Objekten (Linien, Kreise etc., mittels der sogenannten Hough-Transformation) erreicht werden. Dies umfasst eine Transformation von Daten in einem kartesischen Koordinatensystem (x, y) in ein Polarkoordinatensystem (R, θ), d.h. von y = ax + b zu R = x cos (θ) + y sin (θ). Dabei ist R der Abstand zum Ursprung, während θ der Kantenwinkel von der Gradientenaufnahme ist. Dann wird eine Akkumulatoranordnung von diesen Werten inkrementiert und endgültige Linien werden von den vier besten Werten im Akkumulator erhalten. Das Ergebnis dieses Vorgangs ist wiederum in Verbindung mit Fig. 4G gezeigt.
[0030] Im folgenden Schritt S8 (= ECKENEXTRAKTION) können die Ecken extrahiert werden. Da die Schnittpunkte der Hough-Linien nur ungefähre Ecken des zweidimensionalen Punktcodes sind, müssen bessere und genauere Koordinaten berechnet werden. Dies kann durch einen Scan Linie für Linie (bzw. Säule für Säule) in einem kleinen Bereich um die ungefähren Ecken, bis ein schwarzes Pixel erreicht wird, bewirkt werden. Die ungefähren Ecken können durch das Schneiden der Linien der Grenze, wie in Schritt S7 berechnet, bestimmt werden. Die Koordinaten des detektierten schwarzen Pixels können dann als besserer Näherungswert für die Koordinaten der Ecke verwendet werden. Ein kleiner Bereich von Interesse (der sich in der Originalaufnahme befindet) kann verwendet werden, um höchste Präzision und einen schnellen Vorgang zu gewährleisten. Dieses entsprechende Konzept ist wiederum in Verbindung mit Fig. 4H näher erklärt.
[0031] In einem nachfolgenden Schritt S9 (= IDENTIFIZIEREN VON LINIEN) werden die Parameter des zweidimensionalen Punktcodes identifiziert. Dies kann insbesondere für die Identifizierung der L-förmigen durchgehenden Linie und der L-förmigen Taktlinie eines DataMatrix-Punktcodes, wie in Verbindung mit Fig. 1A und 1B beschrieben, gelten. Dies kann das Zählen der Anzahl der schwarzen Pixel entlang jedem Segment umfassen, um einen sogenannten Punktwert zu erhalten. Das gescannte Segment, das den höchsten Punktwert erhalten hat, wird als das längste Segment der L-förmigen durchgehenden Linie identifiziert, das gescannte Segment, das den zweithöchsten Punktwert erhalten hat und zum identifizierten längsten Segment der L-förmigen durchgehenden Linie im Wesentlichen senkrecht steht, wird als das zweitlängste Segment der L-förmigen durchgehenden Linie identifiziert (wobei der Winkel aus den in Schritt S7 erhaltenen Gleichungen der Grenzlinie berechnet wird). Die zwei verbleibenden Segmente bilden die L-förmige Taktlinie. Das Scannen innerhalb tatsächlicher Bilddaten ist in Verbindung mit Fig. 4I gezeigt.
[0032] Falls in Schritt S2 eine optionale Neudimensionierung vorgenommen wurde, wird in einem nachfolgenden Schritt S10 (= GRÖSSENWIEDERHERSTELLUNG) die Grösse des zweidimensionalen Punktcodes und die ursprüngliche Gitterposition wiederhergestellt. Dies kann das Scannen der in Schritt S9 identifizierten Taktliniengrenzen und das Zählen der Anzahl von Übergängen, um so die Grösse des Gitters zu bestimmen, umfassen. Dies kann auch das Verifizieren der Übergangsneuverteilung im Raum umfassen. Gegebenenfalls können die Ergebnisse durch Vergleichen der Übergangszählung mit einer normalisierten Grösse eines zweidimensionalen Punktcodes validiert werden, z.B. 16 x 16, 12 x 26 etc. Es ist weiterhin möglich, die Anwendung die Grösse berechnen zu lassen oder einen gewünschten Fixwert zu erzwingen. Dieser Aspekt ist in Verbindung mit Fig. 4J näher beschrieben.
[0033] In einem nächsten Schritt S11 (= ABTASTEN/DEKODIEREN) wird ein Abtasten und Dekodieren durchgeführt, unter Berücksichtigung, dass die ursprüngliche Gitterposition hinsichtlich der Abtastqualität nicht perfekt sein kann, wobei die ursprüngliche Gitterposition aus den Koordinaten der in Schritt S8 erhaltenen Ecken berechnet wird und die Grösse des Gitters die in Schritt S10 berechnete ist oder, im Fall dass in Schritt S10 keine Grössenwiederherstellung erfolgte, eine Grösse, die direkt durch das Zählen der Übergänge der L-förmigen Taktlinie der zwei verbleibenden Segmente, wie in Schritt S9 gefunden, erhalten wird. Dies kann wiederum auch das Verifizieren der Übergangsneuverteilung im Raum oder eine optionale Validierung der Ergebnisse, wie für Schritt S10 beschrieben, umfassen. Aus diesem Grund kann im Reed-Solomon-Algorithmus ein heuristisches Suchmuster zum Minimieren der Anzahl von Fehlerkorrekturcodewörtern verwendet werden. Das Gitter kann entlang des Suchpfades bewegt werden, bis eine ausreichende Qualität erreicht wird und, wenn eine geeignete Position gefunden wurde, wird das Abtasten durchgeführt. Falls der zweidimensionale Punktcode oder die Aufnahme davon verzerrt ist (z.B. aufgrund des Druckens und/oder der Aufnahmebeschaffung), kann eine 3x3 affine Transformationsmatrix berechnet werden. Diese bildet ein ideales zweidimensionales Punktcodegitter auf das tatsächliche Gitter ab. Diese Transformation kann es ermöglichen, bei gleichzeitiger Korrektur einer Reihe von Defekten die realen Koordinaten jeglicher Elemente im idealen Gitter präzise wiederherzustellen.
[0034] Im Allgemeinen sind die Schritte S2 bis S9 auf das Wiederherstellen der Kontur des zweidimensionalen Punktcodes, d.h. der Segmente der Kontur und des Anfangs und des Endes (Extremitäten) eines jeden Segments, ausgerichtet. Zwei der Segmente (ein Paar gegenüberliegender Segmente) sind üblicherweise parallel zueinander und bilden die Kontur mit einem typischen Aspektverhältnis und einer typischen Grösse. Mit anderen Worten detektieren die Schritte ein Objekt innerhalb der Aufnahme mit einer globalen Form, die einem zweidimensionalen Punktcode eines bestimmten Typs und Standards (z.B. DataMatrix) ähnlich ist; wobei die Ähnlichkeiten auf der Detektion von vier Kanten basieren, die ungefähr ein Parallelogramm ausbilden.
[0035] Fig. 5A zeigt ein Flussdiagramm einer Ausführungsform eines Verfahrens der vorliegenden Erfindung. Insbesondere betrifft diese Ausführungsform das Verfahren, welches bereits vorstehend in Verbindung mit Fig. 3 und 4A eingeführt wurde. Die Schritte S101 bis S105, wie sie nun in Verbindung mit Fig. 5A erklärt werden, ersetzen alle in Verbindung mit Fig. 3 erklärten Schritte S1 bis S8.
[0036] Diese Ausführungsform eines Verfahrens betrifft gleichermassen das Identifizieren eines zweidimensionalen Punktcodes in digitalen Bilddaten des Punktcodes. Somit wird wiederum angenommen, dass eine Aufnahme des Punktcodes, der wahrscheinlich bereits an einem Gegenstand, Dokument oder Produkt angebracht wurde, erhalten wurde. Die digitalen Bilddaten werden somit auch Teile enthalten, die diesen Gegenstand, dieses Dokument oder Produkt zusammen mit Teilen des Hintergrunds oder Gegenständen zeigen, die beispielsweise zu einer Bedienungsausrüstung oder einer Fertigungslinie gehören. In dieser Ausführungsform wird ebenso angenommen, dass der Punktcode Elemente einer ersten und einer zweiten Art umfasst, die in einem geordneten Gitter angeordnet sind, und dass der Punktcode eine Kontur aufweist, die eine L-förmige durchgehende Linie ohne Übergängen zwischen den Elementen erster und zweiter Art umfasst.
[0037] Gemäss dieser Ausführungsform wird in einem ersten Schritt S101 (= BERECHNUNG DES GRADIENTEN) ein Gradientenfeld aus den digitalen Bilddaten berechnet, wobei das Gradientenfeld einen Gradienten des Pixelwerts in den digitalen Bilddaten spezifiziert. Dann werden die Grössenordnungsdaten des Gradienten aus dem Gradientenfeld berechnet, um einen skalaren Wert für jeden Pixel, der die Grössenordnung des Gradienten repräsentiert, zu erhalten. Diese Berechnung des Gradienten kann wiederum eine gewisse vorbereitende Bearbeitung umfassen, abhängig von dem Zustand und der Auflösung (Grösse) der digitalen Eingangsbilddaten. Diese Schritte sind in Verbindung mit Fig. 5B gezeigt.
[0038] Falls erforderlich wird die Grösse der Roheingangsaufnahme in einem optionalen Schritt S111 (= GRÖSSENVERÄNDERUNG/NEUSKALIERUNG) verändert, beispielsweise indem über eine bilineare Unterabtastung eine Neuskalierung vorgenommen wird. Ähnliche Aspekte können zutreffen, wie sie zuvor in Verbindung mit Fig. 4B beschrieben wurden. Dann kann die grössenveränderte Aufnahme mit Hilfe eines Gauss-Filters in einem Schritt S112 (= GLÄTTUNG) geglättet werden, beispielsweise durch einen Weichzeichnerschritt mit einem festgelegten Zoomfaktor. Ein typischer Wert des Zoomfaktors kann auf der Basis der bekannten Punktgrösse bestimmt werden, wobei die Punkte bis zu dem Punkt vergrössert werden, an dem benachbarte Punkte dazu neigen, sich zu berühren und eine Linie auszubilden. Nachfolgend wird in Schritt S113 (= KONTRASTNIVEAUDETEKTION) eine Detektion von Kontrastniveaus an der geglätteten Aufnahme durchgeführt. Hier kann ein Sobel-Operator einen zweidimensionalen räumlichen Gradienten anhand der Bilddaten berechnen. In Schritt S114 (= UNGEFÄHRER GRADIENT) wird eine ungefähre Grössenordnung des Gradienten berechnet, was impliziert, dass eine Kantenstärke bei jedem Bildpixel ungefähr berechnet wird. Dann wird in Schritt S115 (= NICHT-HÖCHST-SUPPRESSION) ein Nicht-Höchst-Suppressionsvorgang anhand der Grössenordnung der Gradienten durchgeführt, was bedeutet, dass die Aufnahme entlang der Richtung des Bildgradienten gescannt wird und falls Pixel nicht Teil der lokalen Höchstwerte sind, sie auf null gesetzt werden mit der Wirkung, dass die gesamte Bildinformation, die nicht Teil der lokalen Höchstwerte sind, unterdrückt wird. Dieser Vorgang erlaubt das Eliminieren von schlechten Kontrasten, Rauschen, Hintergrund etc. Somit kann angenommen werden, dass nur die verbleibenden Merkmale dem zweidimensionalen Punktcode entsprechen. Dies kann die Annahme umfassen, dass die Druckfarbenreaktion auf Beleuchtung beim Anfertigen der Rohaufnahme die höchste sein soll, insbesondere im Vergleich mit der Reaktion des Hintergrunds.
[0039] Wiederum mit Bezug auf Fig. 5A wird der Prozess mit Schritt S102 (= SCHWELLENWERTVORGANG) auf der Basis des erhaltenen Gradientenfelds fortgesetzt. Insbesondere wird gemäss dieser Ausführungsform in Schritt S12 ein Schwellenwertvorgang anhand der berechneten Grössenordnungsdaten des Gradienten durchgeführt, und Bilddaten der Kantensegmente werden erhalten. Der Schwellenwertvorgang kann eine Trennung von hellen und dunklen Bereichen basierend auf der Grössenordnung der Gradienten umfassen. Dies kann den Vorteil bereitstellen, dass die Dynamik der Pixelwerte grösser ist, indem der abzutastende Wertebereich im Vergleich mit den Werten der Bildpixel an sich sehr gross ist (z.B. Dynamik wird auf nur 256 Werte beschränkt). Das Otsu-Verfahren zum Bilden von Clustern kann eingesetzt werden, um eine bessere Sichtbarkeit der Variationen zu erhalten, so dass ein Gradientenschwellenwert die bessere Trennung der Hintergrundinformation von der Information, die den zweidimensionalen Punktcode in den digitalen Bilddaten darstellt, ermöglicht. Schlussendlich kann gegebenenfalls ein Grössenveränderungsvorgang durchgeführt werden, um den ursprünglichen Massstab wiederherzustellen. Zu diesem Zweck kann eine inverse Neuskalierung durch bilineare Neuabtastung angewandt werden, ohne die Effekte des Weichzeichnerschritts zu eliminieren. Auf diese Weise kann eine binärisierte Aufnahme mit nur einigen vergrösserten Punkten und Segmenten erhalten werden. Somit können Segmente detektiert werden.
[0040] Wenn in Schritt S111 eine optionale Neuskalierung durchgeführt wurde, dann wird in einem nachfolgenden Schritt S103 (= WIEDERHERSTELLEN DER GRÖSSE) die Grösse des zweidimensionalen Punktcodes und die ursprüngliche Gitterposition wiederhergestellt. Im Allgemeinen können die Schritte aus S10, wie in Verbindung mit Fig. 3 beschrieben, auch hier angewandt werden.
[0041] Der Prozess wird dann mit Schritt S104 (= DETEKTIEREN LINEARER SEGMENTE) auf der Basis der erhaltenen, dem Schwellenwertvorgang unterzogenen, Bilddaten fortgesetzt. Insbesondere wird gemäss dieser Ausführungsform in Schritt S104 ein Detektieren von linearen Segmenten in den Bilddaten des Kantensegments durchgeführt. Zu diesem Zweck kann ein Kantenfolgealgorithmus eingesetzt werden, um den Anfang und das Ende eines jeden Segments in der aus dem Kantendetektionsschritt stammenden binärisierten Aufnahme zu detektieren und die benachbarten Segmente beispielsweise basierend auf Abstand und Winkel unter Verwendung des sogenannten LSD-Algorithmus oder einer Hough-Transformation zu bewerten. Der frühere LSD-Algorithmus ist beschrieben und veröffentlicht in: R.G. v. Gioi, J. Jakubowicz, J.-M. Morel und G. Randall, «LSD: A Line Segment Detector» (in Image Processing On Line (2012); http: //dx. doi. org/10. 5201/ipol. 2012.gjmr-lsd). Gegebenenfalls kann ein Verschmelzen zweier kollinearer Segmente in Betracht gezogen werden, um aus einer Liste von Segmenten iterativ längere Segmente auszubilden.
[0042] Basierend auf den detektierten Segmenten werden in Schritt S105 (= IDENTIFIZIEREN VON PAAREN) Paare detektierter linearer Segmente basierend auf zumindest einem Winkelkriterium zwischen zwei der detektierten linearen Segmente identifiziert. Ebenso kann ein (zweites) Abstandskriterium gelten, das den Abstand zwischen den nächsten Extremitäten der mit Hilfe der Anwendung des (ersten) Winkelkriteriums erhaltenen Segmente betrachtet. Der Abstand kann mit einem vorbestimmten Schwellenwert im Hinblick auf das Unterschreiten desselben verglichen werden (idealerweise verschwindet der Abstand für einen idealen Scheitelpunkt einer L-Form). Mit anderen Worten wird unter möglichen Kandidaten für Segmentpaare ein «bestes L» gesucht. Zu diesem Zweck kann das Winkelkriterium nur ungefähr rechtwinklige Segmente betrachten, von denen am wahrscheinlichsten ist, dass sie die L-förmige durchgehende Linie oder das «Findermuster» repräsentieren, das die L-Grenze eines zweidimensionalen Punktcodes von DataMatrix ausbildet. Als eine Grundlage können die zuvor gefundenen Segmente herangezogen werden, indem jene identifiziert werden, die gute Kandidaten für die Bildung der L-Form sind. Beispielsweise ist in einer Standardausrichtung die Ecke an der linken unteren Seite eines DataMatrix-Punktcodes der Ausgangspunkt für ein kurzes Segment, das der Höhe entspricht, und für ein langes Segment, das der Länge des Punktcodes entspricht (siehe Fig. 1B ).
[0043] Das «beste L» wird dann zu einem Quadrat, Rechteck, Parallelogramm oder – im Allgemeinen – Rechteck, Quadrat oder vierseitigen Vieleck, vervollständigt, um alle vier ungefähren Ecken zu erhalten, auf denen die nachfolgenden Schritte aufbauen können. Insbesondere innerhalb des zuvor erwähnten LSD-Algorithmus kann jede L-Form ein Rechteck definieren, indem die L-Form gespiegelt wird und die zwei L-Formen zu einem Rechteck vervollständigt werden. Alternativ dazu wird gemäss der Hough-Transformation das Rechteck oder das Vieleck durch die L-förmige durchgehende Linie und die Taktlinie vervollständigt.
[0044] Fig. 6A zeigt ein Flussdiagramm einer alternativen Ausführungsform eines Verfahrens. Insbesondere betrifft diese Ausführungsform das Verfahren, das bereits vorstehend in Verbindung mit Fig. 3 und Fig. 4A eingeführt wurde. Die Schritte S21 bis S25, wie sie nun in Verbindung mit Fig. 6A erklärt werden, ersetzen den in Verbindung mit Fig. 3 erklärten Schritt S9. Gleichermassen können die Schritte S21 bis S25 auch auf Schritt 105, wie in Verbindung mit 5A erklärt, folgen.
[0045] Diese Ausführungsform des Verfahrens betrifft gleichermassen das Identifizieren eines zweidimensionalen Punktcodes in digitalen Bilddaten des Punktcodes. Der Punktcode umfasst Elemente einer ersten und zweiten Art, die in einem geordneten Gitter angeordnet sind, und der Punktcode weist eine Kontur auf, die eine L-förmige Taktlinie mit Übergängen zwischen den Elementen erster und zweiter Art und eine L-förmige durchgehende Linie ohne Übergängen zwischen den Elementen erster und zweiter Art umfasst. Ungefähre Ecken bestimmen in den digitalen Bilddaten ein erstes und ein zweites Paar gegenüberliegender Kantensegmente entlang der Kontur. Mit anderen Worten nimmt diese Ausführungsform an, dass beispielsweise das Taktliniensegment 122 ́ wie in Fig. 1B gezeigt und das entsprechende Segment der durchgehenden Linie 112 ́ als ein Paar gegenüberliegender Kantensegmente in den digitalen Bilddaten erscheinen, während die Segmente 111 ́ und 121 ́ als ein anderes Paar gegenüberliegender Kantensegmente erscheinen.
[0046] Diese Ausführungsform berücksichtigt, dass die ungefähren Ecken und somit die Segmentpaare (d.h. Linien) in den digitalen Aufnahmedaten beispielsweise durch die in Verbindung mit Fig. 3 oder 5A beschriebenen Prozesse bekannt sind. In einem ersten Schritt S21 (= ERSTES SEGMENT DES ERSTEN PAARES) werden ein erstes Kantensegment des ersten Paares in den digitalen Bilddaten gescannt und Übergänge zwischen den Elementen der ersten und zweiten Art entlang dem ersten Kantensegment des ersten Paares gezählt. Das Scannen und das Zählen können als getrennte Prozesse oder gleichzeitig durchgeführt werden. Das Scannen an sich kann sich somit auf den Prozess des Scannens entlang einer Linie innerhalb von digitalen Bilddaten beziehen, um einen (Pixel-)Wert auf einer Position entlang der Linie zu bestimmen (siehe auch Fig. 4I und 4J ).
[0047] Im optionalen Schritt S22 (= ZWEITES SEGMENT DES ERSTEN PAARES) werden, wenn entlang dem ersten Kantensegment des ersten Paares (d.h. in Schritt S21) keine Übergänge gezählt wurden, das zweite Kantensegment des ersten Paares in den digitalen Bilddaten gescannt und die Übergänge zwischen den Elementen erster und zweiter Art entlang dem zweiten Kantensegment des ersten Paares gezählt. Wenn bereits in Schritt S21 Übergänge gezählt wurden, kann bestimmt werden, dass das gescannte erste Segment des ersten Paares ein Segment/Schenkel der L-förmigen Taktlinie ist. Das Scannen und Zählen mit Bezug auf das zweite Segment des ersten Paares kann somit entfallen, da angenommen werden kann, dass die Länge dieselbe wie die des ersten Segments ist und – da der zweidimensionale Punktcode den Konventionen folgt – das zweite Segment keine zu zählenden Übergänge aufweisen wird.
[0048] Ebenso setzt sich der Prozess in Schritt S23 (= ERSTES SEGMENT DES ZWEITEN PAARES) fort mit dem Scannen eines ersten Kantensegments des zweiten Paares in den digitalen Bilddaten und dem Zählen von Übergängen zwischen Elementen der ersten und zweiten Art entlang dem ersten Kantensegment des zweiten Paares. Wiederum werden im optionalen Schritt S24 (= ZWEITES SEGMENT DES ZWEITEN PAARES) das zweite Kantensegment des zweiten Paares in den digitalen Bilddaten gescannt und Übergänge zwischen Elementen erster und zweiter Art entlang dem zweiten Kantensegment des zweiten Paares gezählt, falls entlang dem ersten Kantensegment des zweiten Paares keine Übergänge gezählt wurden. Der optionale Charakter von Schritt S24 wird erneut beispielsweise aus den Fig. 1A und 1B klar, auf dieselbe Weise wie für den optionalen Schritt S22.
[0049] Dann kann der Prozess in Schritt S25 (= IDENTIFIZIEREN VON DURCHGEHENDER LINIE UND TAKTLINIE) mit dem Identifizieren des Kantensegments des ersten Paares und des Kantensegments des zweiten Paares, entlang derer Übergänge gezählt wurden, als die L-förmige Taktlinie des Punktcodes und dem Identifizieren des Kantensegments des ersten Paares und des Kantensegments des zweiten Paares, entlang derer keine Übergänge gezählt wurden, als die L-förmige durchgehende Linie des Punktcodes fortgesetzt werden. Anhand der Übergangszählungen beider Segmente mit Übergängen kann die Ausrichtung und die längere und kürzere Seite des zweidimensionalen Punktcodes bestimmt werden. Die Anzahl der Übergänge kann auch den Weg für das Definieren des geordneten Gitters bereiten, um den Punktcode zu dekodieren.
[0050] Der Vorteil gegenüber einer herkömmlichen Bearbeitung wird offensichtlich, wenn das typische Verfahren betrachtet wird, das das Scannen der Pixel aller Kanten des Kandidatenrechtecks betrachtet, um Übergänge oder keine Übergänge zu detektieren. Im letzteren Fall wurde ein Segment der durchgehenden Linie gescannt, ansonsten wurde ein Segment der Taktlinie gescannt. Zudem wird jedes gescannte Pixel/Element gezählt, um sowohl das lange als auch das kurze Segment zu detektieren. Insgesamt sind acht Zähl-/Scanvorgänge erforderlich, d.h. zwei für jedes der vier Segmente, die die Kontur bilden.
[0051] Gemäss dieser Ausführungsform können jedoch die Scan-/Zählvorgänge auf vier, drei oder sogar bis auf zwei reduziert werden. Daher wird in jedem Fall eine wesentliche Effizienzverbesserung gegenüber den herkömmlichen Verfahren erhalten. Dies beruht auf der Tatsache, dass das Scannen und das Zählen gleichzeitig bewerkstelligt werden kann. Aus diesem Grund wird, sogar wenn alle vier Segmente gleichzeitig gescannt und gezählt werden, da beispielsweise beide ersten Segmente von beiden Paaren keine Übergänge aufweisen, die Anzahl der erforderlichen Vorgänge halbiert. Zudem wird nur ein erstes Segment eines ersten Paares gegenüberliegender Seiten gescannt, um die Gegenwart von Übergängen zu detektieren, anstatt die Segmente rund um das Rechteck sukzessive zu betrachten, und nur die Übergänge müssen gezählt werden, um den langen und kurzen Teil der Taktlinie zu bestimmen. Falls kein Übergang detektiert wird, dann entspricht die gescannte Kante einer Kante der L-förmigen durchgehenden Linie; wenn zumindest ein Übergang detektiert wird, dann kann die gescannte Kante als einer Kante der Taktlinie entsprechend betrachtet werden.
[0052] Fig. 6B zeigt ein Flussdiagramm einer weiteren Ausführungsform eines Verfahrens. Insbesondere betrifft diese Ausführungsform das bereits vorstehend in Verbindung mit Fig. 3 und 4A eingeführte Verfahren. Die Schritte S31 bis S35, wie sie nun in Verbindung mit Fig. 6B erklärt werden, ersetzen Schritt S9, wie in Verbindung mit Fig. 3 erklärt. Gleichermassen können die Schritte S31 bis S35 auf Schritt 105, wie in Verbindung mit Fig. 5A erklärt, folgen.
[0053] Die Ausführungsform des Verfahrens betrifft gleichermassen das Identifizieren eines zweidimensionalen Punktcodes in digitalen Bilddaten des Punktcodes. Der Punktcode umfasst Elemente einer ersten und zweiten Art, die in einem geordneten Gitter angeordnet sind, und der Punktcode weist eine Kontur auf, die eine L-förmige Taktlinie mit Übergängen zwischen Elementen erster und zweiter Art und eine L-förmige durchgehende Linie ohne Übergängen zwischen Elementen erster und zweiter Art umfasst. Ungefähre Ecken bestimmen wiederum in den digitalen Bilddaten ein erstes und ein zweites Paar gegenüberliegender Kantensegmente entlang der Kontur. Zudem folgt der zweidimensionale Punktcode der Konvention, dass ein Kreuzungselement an der Ecke der L-förmigen Taktlinie von einer vorbestimmten/bekannten Art ist, die aus der ersten und zweiten Art ausgewählt ist.
[0054] Diese Ausführungsform ermöglicht eine weitere Verbesserung der Effizienz, indem in einem ersten Schritt S31 (= ERSTES SEGMENT DES ERSTEN PAARES) ein erstes Kantensegment des ersten Paares in den digitalen Bilddaten gescannt wird und Übergänge zwischen Elementen der ersten und zweiten Art entlang dem ersten Kantensegment des ersten Paares gezählt werden. Falls keine Übergänge entlang dem ersten Kantensegment des ersten Paares gezählt wurden, erfolgt wiederum das Scannen des zweiten Kantensegments des ersten Paares in den digitalen Bilddateien und das Zählen der Übergänge zwischen Elementen erster und zweiter Art entlang dem zweiten Kantensegment des ersten Paares (siehe optionaler Schritt S32 = ZWEITES SEGMENT DES ERSTEN PAARES).
[0055] Aufgrund der bekannten (vorbestimmten) Art des Kreuzungselements (siehe Element 13 in Fig. 1A ) kann in Schritt S33 (= BESTIMMEN DER EXTREMITÄTEN) bestimmt werden, welche Extremität des Kantensegments des ersten Paares, entlang dem Übergänge gezählt wurden, dem Kreuzungselement entspricht. Somit kann der Prozess in Schritt S34 (= SEGMENT DES ZWEITEN PAARES) direkt mit dem Scannen des Kantensegments des zweiten Paares, das das Kreuzungselement aufweist, und dem Zählen der Übergänge zwischen den Elementen erster und zweiter Art entlang des Kantensegments des zweiten Paares, das das Kreuzungselement aufweist, und in Schritt S35 (= IDENTIFIZIEREN DER DURCHGEHENDEN LINIE UND DER TAKTLINIE) mit dem Identifizieren des Kantensegments des ersten Paares und des Kantensegments des zweiten Paares, die einander beim Kreuzungselement schneiden, als die L-förmige Taktlinie des Punktcodes und dem Identifizieren des Kantensegments des ersten Paares und des Kantensegments des zweiten Paares, die nicht Teil der L-förmigen Taktlinie sind, als die L-förmige durchgehende Linie des Punktcodes fortgesetzt werden. Somit sind in dieser Ausführungsform aufgrund des Bestimmens der Extremität wie in Schritt S33 nur drei oder zwei Vorgänge nötig.
[0056] Fig. 7A zeigt eine allgemeine Ausführungsform eines Geräts. Insbesondere ist ein Gerät 100 gezeigt, dass eine Verarbeitungseinheit 110 und eine Speichereinheit 120 umfasst. Die Speichereinheit 120 kann einen Code speichern, der bei Ausführung auf der Verarbeitungseinheit 110 eine oder mehrere Ausführungsformen von Verfahren der vorliegenden Erfindung umsetzt.
[0057] Gegebenenfalls kann das Gerät 100 eine Bildaufnahmeeinheit 131 umfassen, um eine digitale Aufnahme eines zweidimensionalen Punktcodes, wie er beispielsweise auf einem Gegenstand oder einem Dokument aufgebracht ist, zu erfassen. Zudem kann das Gerät 100 eine Kommunikationseinheit 132 umfassen, um eine Identifikation und/oder ein Dekodierergebnis an andere Stellen, wie etwa Server, Steuereinheiten und dergleichen zu kommunizieren. Die Kommunikation kann über ein Netzwerk, wie etwa ein lokales Netzwerk (LAN), Drahtlosnetzwerk (WLAN), das Internet und dergleichen, erfolgen. Zudem können auch Bussysteme, wie etwa CAN, für den Datenaustausch eingesetzt werden.
[0058] Fig. 7B zeigt eine schematische Ansicht einer tragbaren Ausführungsform eines Geräts zum Erfassen einer Aufnahme des zweidimensionalen Punktcodes und zum Identifizieren und (gegebenenfalls) Dekodieren desselben. Das Gerät 200 umfasst ein Fenster 201, durch das eine digitale Aufnahme eines Gegenstandes 210 erzeugt werden kann. Ein zweidimensionaler Punktcode 1 ́ ́ wird mit Hilfe eines beliebigen der zuvor erwähnten Druck-, mechanischen, physikalischen oder chemischen Verfahren, auf den Gegenstand 210 aufgebracht. Das Gerät 200 kann zudem eine integrierte Verarbeitungseinheit (nicht gezeigt) umfassen, um ein oder mehrere Verfahren gemäss Ausführungsformen der vorliegenden Erfindung durchzuführen. Ein zusätzliches Betriebselement 202 kann bereitgestellt sein, um das Gerät 200 ein- und auszuschalten und/oder das Erfassen eines Bildes, das Erfassen/Erhalten entsprechender digitaler Bilddaten und/oder das Bearbeiten der digitalen Bilddaten, für die Identifikation und/oder Dekodierung des zweidimensionalen Punktcodes 1 ́ ́ auf dem Gegenstand 210 zu initiieren. Die Vorrichtung kann natürlich auch andere Formen annehmen und kann drahtgebunden oder drahtlos sein.
[0059] Fig. 7C zeigt eine schematische Ansicht einer befestigten Ausführungsform eines Geräts zum Erfassen einer Aufnahme des zweidimensionalen Punktcodes und zum Identifizieren und (gegebenenfalls) Dekodieren desselben. Wie beispielsweise ein Modul, das auf einer Fertigungs-/Verteilungslinie angebracht werden kann, um zweidimensionale Punktcodes auf Gegenständen, die auf der Linie transportiert werden, zu identifizieren. Das Gerät 200 ́ umfasst wiederum ein Fenster 201 ́, durch das eine digitale Aufnahme eines Gegenstands 210 mit einem zweidimensionalen Punktcode 1 ́ ́ erzeugt werden kann. Das Gerät 200 ́ kann zudem eine integrierte Verarbeitungseinheit (nicht gezeigt) umfassen, um eines oder mehrere Verfahren gemäss Ausführungsformen der vorliegenden Erfindung durchzuführen. Ein zusätzliches Fixierungselement 202 ́ kann bereitgestellt sein, um das Gerät 200 ́ beispielsweise auf einer Fertigungslinie anzubringen, auf der eine Vielzahl von Gegenständen 210 das Gerät 200 ́ zur Identifizierung passieren. Die Vorrichtung kann natürlich auch andere Formen annehmen und kann drahtgebunden oder drahtlos sein.
[0060] Gemäss einer weiteren Ausführungsform wird ein Verfahren bereitgestellt, um einen zweidimensionalen Punktcode in digitalen Bilddaten des Punktcodes zu identifizieren, wobei der Punktcode Elemente einer ersten und zweiten Art umfasst, die in einem geordneten Gitter angeordnet sind, und eine Kontur aufweist, die eine L-förmige durchgehende Linie ohne Übergängen zwischen Elementen erster und zweiter Art umfasst. Das Verfahren beinhaltet eine Berechnungseinheit, die eine Berechnung eines Gradientenfelds aus den digitalen Bilddaten durchführt, wobei das Gradientenfeld einen Gradienten des Pixelwerts in den digitalen Bilddaten spezifiziert; eine Einheit, die eine Berechnung von Grössenordnungsdaten des Gradienten aus dem Gradientenfeld durchführt; eine Einheit, die einen Schwellenwertvorgang anhand der berechneten Grössenordnungsdaten des Gradienten und das Erhalten von Kantensegmentbilddaten durchführt; eine Detektionseinheit, die eine Detektion von linearen Segmenten in den Kantensegmentbilddaten durchführt; eine Identifizierungseinheit, die eine Identifikation von Paaren der detektierten linearen Segmente basierend auf einem Winkelkriterium zwischen zwei der detektierten linearen Segmente und basierend auf einem Abstandskriterium, das einen Abstand zwischen einer Extremität jedes der zwei linearen Segmente betrachtet, durchführt; und eine Abtasteinheit, die ein Abtasten teilweiser digitaler Bilddaten, welche einem rechteckigen Bereich in den digitalen Bilddaten entsprechen, und ein Detektieren einer Anwesenheit von Elementen der ersten und zweiten Art in teilweisen digitalen Bilddaten durchführt, wobei der rechteckige Bereich von einem der identifizierten Paare detektierter linearer Segmente definiert wird, umfasst.
[0061] Obwohl detaillierte Ausführungsformen beschrieben wurden, dienen diese lediglich dazu, ein besseres Verständnis der von den unabhängigen Patentansprüchen definierten Erfindung bereitzustellen, und sollen nicht als einschränkend verstanden werden.

Claims (19)

1. Verfahren zum Identifizieren eines zweidimensionalen Punktcodes in digitalen Bilddaten des Punktcodes, wobei der Punktcode Elemente einer ersten und zweiten Art umfasst, die in einem geordneten Gitter angeordnet sind, und eine Kontur aufweist, die eine L-förmige durchgehende Linie ohne Übergängen zwischen den Elementen erster und zweiter Art umfasst, wobei das Verfahren umfasst: –Berechnen eines Gradientenfelds aus den digitalen Bilddaten, wobei das Gradientenfeld einen Gradienten des Pixelwerts in den digitalen Bilddaten spezifiziert; – Berechnen von Grössenordnungsdaten des Gradienten aus dem Gradientenfeld; – Durchführen eines Schwellenwertvorgangs anhand der berechneten Grössenordnungsdaten des Gradienten und Erhalten von Kantensegmentbilddaten; – Detektieren von linearen Segmenten in den Kantensegmentbilddaten; – Identifizieren von Paaren der detektierten linearen Segmente basierend auf einem Winkelkriterium zwischen zwei der detektierten linearen Segmente und basierend auf einem Abstandskriterium, das einen Abstand zwischen einer Extremität jedes der zwei linearen Segmente betrachtet; und – Abtasten teilweiser digitaler Bilddaten, welche einem rechteckigen Bereich in den digitalen Bilddaten entsprechen, und Detektieren einer Anwesenheit von Elementen der ersten und zweiten Art in teilweise digitalen Bilddaten, wobei der rechteckige Bereich von einem der identifizierten Paare detektierter linearer Segmente definiert wird.
2. Verfahren nach Anspruch 1, wobei das Detektieren linearer Segmente das Bestimmen der Extremitäten des Segments umfasst, wobei die Extremitäten Enden des Segments spezifizieren.
3. Verfahren nach Anspruch 1 oder 2, wobei das Detektieren linearer Segmente das Verschmelzen zweier oder mehr kollinearer Segmente umfasst.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Winkelkriterium spezifiziert, dass die zwei Segmente im Wesentlichen orthogonal sind.
5. Verfahren nach einem der Ansprüche 1 bis 4, wobei das Abstandskriterium spezifiziert, dass der Abstand zwischen den zwei Extremitäten unter einem vorbestimmten Wert liegt.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Verfahren das Bestimmen eines besten Kandidaten aus den identifizierten Paaren basierend auf einem der folgenden umfasst: einem Winkelkriterium, einer relativen Länge der zwei Segmente, einem Kreuzungspunkt und einem Abstandskriterium.
7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Verfahren vor dem Abtasten einen der folgenden Schritte umfasst: Normalisieren, Neudimensionieren und Neuskalieren.
8. Verfahren nach einem der Ansprüche 1 bis 7, wobei das Element der ersten Art ein Element mit weisser Farbe oder ein Element mit heller Farbe oder ein mehr Licht reflektierendes Element als ein Element der zweiten Art ist, und wobei das Element der zweiten Art ein Element schwarzer Farbe, ein Element dunkler Farbe oder ein weniger Licht reflektierendes Element als ein Element der ersten Art ist, und wobei das Element erster Art in den digitalen Bilddaten zumindest einem Pixel mit einem Pixelwert, der eine hellere Farbe repräsentiert, entspricht und das Element zweiter Art in den digitalen Bilddaten zumindest einem Pixel mit einem Pixelwert, der eine dunklere Farbe, dunkler als die hellere Farbe, repräsentiert, entspricht.
9. Verfahren nach einem der Ansprüche 1 bis 8, wobei der zweidimensionale Punktcode gedruckt, gefräst, geätzt, geprägt oder geschliffen ist.
10. Verfahren nach einem der Ansprüche 1 bis 9, wobei das Verfahren ferner das Erhalten der digitalen Bilddaten des zweidimensionalen Punktcodes umfasst.
11. Verfahren nach einem der Ansprüche 1 bis 10, wobei die Kontur eine L-förmige Taktlinie mit Übergängen zwischen den Elementen erster und zweiter Art umfasst.
12. Verfahren nach Anspruch 11, wobei ein erster Schenkel der L-förmigen Taktlinie länger ist als ein zweiter Schenkel der L-förmigen Taktlinie und wobei das Verfahren zudem das Bestimmen des längeren Schenkels und des kürzeren Schenkels basierend auf gezählten Übergängen entlang mindestens eines Schenkels der L-förmigen Taktlinie umfasst.
13. Verfahren nach Anspruch 11 oder 12, wobei das Verfahren zudem das Dekodieren des zweidimensionalen Punktcodes, basierend auf der identifizierten L-förmigen Taktlinie und der L-förmigen durchgehenden Linie, umfasst.
14. Gerät, das dazu konfiguriert ist, einen zweidimensionalen Punktcode in digitalen Bilddaten des Punktcodes zu identifizieren, wobei der Punktcode Elemente einer ersten und zweiten Art umfasst, die in einem geordneten Gitter angeordnet sind, und eine Kontur aufweist, die eine L-förmige durchgehende Linie ohne Übergängen zwischen den Elementen erster und zweiter Art umfasst, wobei das eine Verarbeitungseinheit umfassende Gerät wie folgt konfiguriert ist: – zum Berechnen eines Gradientenfelds aus den digitalen Bilddaten, wobei das Gradientenfeld einen Gradienten des Pixelwerts in den digitalen Bilddaten spezifiziert; – zum Berechnen von Grössenordnungsdaten des Gradienten aus dem Gradientenfeld; – zum Durchführen eines Schwellenwertvorgangs anhand der berechneten Grössenordnungsdaten des Gradienten und zum Erhalten von Kantensegmentbilddaten; – zum Detektieren von linearen Segmenten in den Kantensegmentbilddaten; – zum Identifizieren von Paaren der detektierten linearen Segmente basierend auf einem Winkelkriterium zwischen zwei der detektierten linearen Segmente und basierend auf einem Abstandskriterium, das einen Abstand zwischen einer Extremität jedes der zwei linearen Segmente betrachtet; und – zum Abtasten teilweiser digitaler Bilddaten, welche einem rechteckigen Bereich in den digitalen Bilddaten entsprechen, und Detektieren einer Anwesenheit von Elementen der ersten und zweiten Art in teilweisen digitalen Bilddaten, wobei der rechteckige Bereich von einem der identifizierten Paare detektierter linearer Segmente definiert wird.
15. Gerät nach Anspruch 14, wobei das Gerät als eine tragbare Vorrichtung konfiguriert ist.
16. Gerät nach Anspruch 14, wobei das Gerät als ein Modul konfiguriert ist.
17. Gerät nach einem der Ansprüche 14 bis 16 wobei das Gerät zudem eine Bildaufnahmeeinheit, die zum Erhalten der digitalen Bilddaten des Punktcodes angepasst ist, umfasst.
18. Gerät nach einem der Ansprüche 14 bis 17, wobei die Verarbeitungseinheit weiterhin dazu konfiguriert ist, ein Verfahren nach einem der Ansprüche 2 bis 13 durchzuführen.
19. Computerlesbares Medium, das den Code, der eine Verarbeitungseinheit eines Geräts in Betrieb anweist, ein Verfahren nach einem der Ansprüche 1 bis 13 durchzuführen, speichert.
CH00512/15A 2012-10-23 2013-04-30 Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes. CH708994B1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12189592 2012-10-23
PCT/EP2013/059035 WO2014063837A1 (en) 2012-10-23 2013-04-30 Method and device for identifying a two-dimensional barcode

Publications (1)

Publication Number Publication Date
CH708994B1 true CH708994B1 (de) 2017-01-13

Family

ID=47296938

Family Applications (1)

Application Number Title Priority Date Filing Date
CH00512/15A CH708994B1 (de) 2012-10-23 2013-04-30 Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes.

Country Status (4)

Country Link
US (1) US9652652B2 (de)
BR (1) BR112013011943B1 (de)
CH (1) CH708994B1 (de)
WO (1) WO2014063837A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156941B (zh) * 2014-05-13 2017-09-26 北京致胜宏达科技有限公司 一种确定图像上几何轮廓区域的方法及系统
US10331928B2 (en) * 2015-11-06 2019-06-25 International Business Machines Corporation Low-computation barcode detector for egocentric product recognition
CN105975892B (zh) * 2016-05-04 2019-02-01 上海皇和信息科技有限公司 彩色图片二维码解码方法
CN107665324B (zh) * 2016-07-27 2020-08-28 腾讯科技(深圳)有限公司 一种图像识别方法及终端
CN110310279A (zh) * 2019-07-09 2019-10-08 苏州梦想人软件科技有限公司 矩形及曲边矩形边角图像识别方法
CN113160193A (zh) * 2021-04-28 2021-07-23 贵州电网有限责任公司 基于具有Lévy飞行特征的蝙蝠算法和大津法的紫外图像分割方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742041A (en) * 1996-05-29 1998-04-21 Intermec Corporation Method and apparatus for locating and decoding machine-readable symbols, including data matrix symbols
US6941026B1 (en) * 2000-06-13 2005-09-06 Cognex Corporation Method and apparatus using intensity gradients for visual identification of 2D matrix symbols
US7181066B1 (en) * 2002-12-26 2007-02-20 Cognex Technology And Investment Corporation Method for locating bar codes and symbols in an image
US7311262B2 (en) * 2004-08-09 2007-12-25 Optoelectronics Co., Ltd. Method of decoding a symbol with a low contrast
US7412106B1 (en) * 2005-06-25 2008-08-12 Cognex Technology And Investment Corporation Methods for locating and decoding distorted two-dimensional matrix symbols
US7438231B2 (en) * 2006-10-05 2008-10-21 Pitney Bowes Inc. Method for detecting forged barcodes
CN102708351B (zh) * 2012-05-24 2014-07-23 江南大学 复杂工况背景下的Data Matrix二维条码快速识别方法

Also Published As

Publication number Publication date
BR112013011943B1 (pt) 2020-12-29
US9652652B2 (en) 2017-05-16
WO2014063837A1 (en) 2014-05-01
BR112013011943A2 (pt) 2016-11-01
US20150294129A1 (en) 2015-10-15

Similar Documents

Publication Publication Date Title
CH708993B1 (de) Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes.
EP2417561B1 (de) Zweidimensionaler symbolcode und verfahren zum lesen des symbolcodes
DE19814075B4 (de) Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern
DE69835358T2 (de) Verfahren zur Korrektur der Verzerrung beim Abtasten eines optischen Codes
DE69926205T2 (de) Artefaktentfernungstechnik für schiefenkorrigierte bilder
DE10036110B4 (de) Verfahren zur Bestimmung des Schrägwinkels eines zweidimensionalen Barcodes
DE102009059264B4 (de) Verfahren zum schnellen Lokalisieren eines entschlüsselbaren Musters
CH708994B1 (de) Verfahren und Vorrichtung zum Identifizieren eines zweidimensionalen Punktcodes.
DE19960555B4 (de) Verfahren zum Auffinden und Lesen eines zweidimensionalen Strichcodes
DE102007028866B4 (de) Vorrichtung zum optischen Lesen eines graphischen Symbols, das aus einer Mehrzahl von optisch erkennbaren Informationseinheitsabschnitten aufgebaut ist
DE69929572T2 (de) Verfahren zum Lesen eines zweidimensionalen Strichcode ohne Taktsignal und ohne Ränder
DE69625583T2 (de) Datenformleser
DE102007035884B4 (de) Linienrauschunterdrückungsvorrichtung, -verfahren und -programm
DE69629930T2 (de) Verfahren zum Festlegen eines auf einem Objekt angebrachten optischen Codes
DE102015219541A1 (de) Dekodieren von strichcodes
DE102013112040B4 (de) System und Verfahren zum Auffinden von sattelpunktartigen Strukturen in einem Bild und Bestimmen von Informationen daraus
DE602004011145T2 (de) Vorrichtung und Verfahren zum Lesen von optischen Informationen
DE69925354T2 (de) Bildverarbeitungssystem um vertikale Muster auf abgetasteten Bildern zu reduzieren
DE112010001320T5 (de) Bildverarbeitungsvorrichtung, Bildverarbeitungsverfahren, Bilderverarbeitungsprogramm und Speichermedium
DE4035396C2 (de)
DE112020005864T5 (de) Verfahren und Einrichtung zur Verifizierung der Authentizität eines Produkts
DE69929110T2 (de) Einrichtung und Verfahren zur Erzeugung von Druckdaten des zweidimensionalen Koden und zugehöriges Aufzeichnungsmedia
EP1022541A2 (de) Verfahren und Vorrichtung zur Bestimmung der Geometrie von blattförmigem Gut oder Stapeln davon
EP2677458B1 (de) Optoelektronische Vorrichtung und Verfahren zur Helligkeitskorrektur
DE102009016598A1 (de) Zweidimensionaler Symbolcode und Verfahren zum Lesen des Symbolcodes