-
Die vorliegende Offenbarung betrifft allgemein auf Bilderzeugung beruhende Strichcodescanner und insbesondere ein Verfahren zum Decodieren eines Strichcodes innerhalb eines Bilderzeugungssichtfelds eines Bilderzeugungssystems.
-
Es sind verschiedene elektrooptische Systeme zum Lesen von optischen Zeichen wie Strichcodes entwickelt worden. Bei einem Strichcode handelt es sich um ein codiertes Muster aus grafischen Zeichen, das aus einer Reihe von Strichen und Zwischenräumen unterschiedlicher Breite besteht. Die Striche und die Zwischenräume bei einem Strichcode weisen unterschiedliche Lichtreflexionseigenschaften auf. Einige Strichcodes besitzen eine eindimensionale Struktur, bei der Striche und Zwischenräume in einer Richtung voneinander beabstandet sind und eine Musterreihe bilden. Zu Beispielen für eindimensionale Strichcodes gehört der UPC-Strichcode (UPC - Uniform Product Code, einheitlicher Produktcode), der in der Regel für Verkäufe im Einzelhandel benutzt wird. Einige Strichcodes besitzen eine zweidimensionale Struktur, bei der mehrere Musterreihen aus Strichen und Zwischenräumen vertikal übereinander angeordnet einen einzelnen Strichcode bilden. Zu Beispielen für zweidimensionale Strichcodes gehören Code 49 und PDF417.
-
Systeme, die einen oder mehrere Bildsensoren zum Lesen und Decodieren von Strichcodes benutzen, werden in der Regel als bildgestützte Strichcodelesegeräte, Bildscanner oder Bildlesegeräte bezeichnet. Ein Bildsensor enthält in der Regel mehrere lichtempfindliche Elemente oder Pixel, die in einer oder mehreren Matrzen angeordnet sind. Zu Beispielen für Bildsensoren gehören CCD-Sensoren (CCD - Charge Coupled Device, ladungsträgergekoppelte Schaltung) oder CMOS-Bilderzeugungschips (CMOS - Complementary Metal Oxide Semiconductor, Komplementär-Metalloxidhalbleiter).
-
US 2012 / 0 000 982 A1 beschreibt ein Verfahren zum Lesen von Codierungen, die auf Artikeln angebracht sind, mit optischen Lesevorrichtungen.
-
Iwaisky, A.; Wilhelmi, W: Lexikon der Computergrafik und Bildverarbeitung. Vieweg, 1994. Seiten 38 und 258, gibt einen Überblick über technologische Konzepte im Bereich der Computergrafik und Bildverarbeitung und bezieht sich insbesondere auf die Relevanz von Schwellwerten bei der optischen Erkennung von Mustern.
-
Es kann als Aufgabe betrachtet werden, das Lesen von auf Mobiltelefonen angezeigten Strichcodes mit Strichcodelesern zu verbessern.
-
Diese Aufgabe wird gelöst durch die Gegenstände des unabhängigen Anspruchs 1 sowie des nebengeordneten Anspruchs 10. Die Erfindung wird durch die Patentansprüche definiert.
-
Die beiliegenden Figuren, in denen gleiche Bezugszeichen in den einzelnen Ansichten gleiche oder von der Funktion her ähnliche Elemente bezeichnen, sind zusammen mit der nachfolgenden ausführlichen Beschreibung in die Beschreibung integriert und bilden einen Bestandteil von ihr und dienen der weiteren Veranschaulichung von Ausführungsformen von Konzepten, in denen die beanspruchte Erfindung enthalten ist, und erläutern die verschiedenen Prinzipien und Vorteile dieser Ausführungsformen.
- 1 zeigt einen Bildscanner gemäß einigen Ausführungsformen.
- 2 ist eine schematische Darstellung eines Bildscanners gemäß einigen Ausführungsformen.
- 3A zeigt einen auf einem Mobiltelefon angezeigten Strichcode, der mit einem linearen Bildwandler gescannt wird, wobei der Strichcode auf das Sichtfeld (SF) des linearen Bildwandlers ausgerichtet ist.
- 3B zeigt eine grafische Darstellung eines Pixelhelligkeitsprofils eines Bilds von den Bestandteilen des Strichcodes und des Mobiltelefons im SF in 3A.
- 3C zeigt eine grafische Darstellung eines Pixelhelligkeitsprofils eines Bilds von den Bestandteilen des Strichcodes und des Mobiltelefons im SF in 3A, nachdem die Belichtung auf der Grundlage des mittleren Abschnitts des Scans angepasst wurde.
- 4 ist ein Ablaufdiagramm für ein Verfahren 100 zum Decodieren eines Strichcodes gemäß einigen Ausführungsformen.
- 5 ist das Histogramm zum Pixelhelligkeitsprofil in 3B.
-
Fachleuten wird klar sein, dass Elemente in den Figuren einfach und übersichtlich dargestellt und nicht unbedingt maßstabsgerecht gezeichnet sind. Die Abmessungen einiger Elemente in den Figuren können beispielsweise in Bezug auf andere Elemente übertrieben dargestellt sein, damit Ausführungsformen der vorliegenden Erfindung einfacher verständlich werden.
-
Bestandteile der Vorrichtung und des Verfahrens sind in den Zeichnungen, soweit erforderlich, durch herkömmliche Symbole dargestellt, wobei nur die speziellen Einzelheiten gezeigt sind, die für ein Verstehen der Ausführungsformen der vorliegenden Erfindung relevant sind, damit die Offenbarung nicht durch Einzelheiten unklar gemacht wird, die für Durchschnittsfachleute, die diese Beschreibung kennen, ohne Weiteres offensichtlich sind.
-
1 zeigt einen Bildscanner 50 gemäß einigen Ausführungsformen. Der Bildscanner 50 weist ein Fenster 56 und ein Gehäuse 58 mit einem Griff auf. Der Bildscanner 50 weist auch einen Sockel 52 auf, mit dem er auf eine Arbeitsplatte gesetzt werden kann. Der Bildscanner 50 kann im freihändigen Modus als ortsfeste Arbeitsstation benutzt werden, wenn er auf die Arbeitsplatte gestellt wird. Der Bildscanner 50 kann auch im Handmodus benutzt werden, wenn ihn eine Bedienperson von der Arbeitsplatte nimmt und in der Hand hält. Im freihändigen Modus können Produkte am Fenster 56 vorbeigeschoben oder -gezogen oder vor das Fenster 56 gehalten werden. Im Handmodus kann der Bildscanner 50 zu einem Strichcode an einem Produkt hin bewegt werden, und es kann manuell ein Auslöser 54 gedrückt werden, damit mit dem Abbilden des Strichcodes begonnen wird. Bei manchen Implementierungen kann der Sockel 52 weggelassen werden, und das Gehäuse 58 kann auch in anderer Form vorliegen. In 1 ist auch ein Kabel mit dem Sockel 52 verbunden. Bei anderen Implementierungen kann der Bildscanner 50, wenn das mit dem Sockel 52 verbundene Kabel weggelassen wird, über eine interne Batterie mit Strom versorgt werden und über eine drahtlose Verbindung mit einem externen Host (remote host) kommunizieren.
-
2 ist eine schematische Darstellung eines Bildscanners 50 gemäß einigen Ausführungsformen. Der Bildscanner 50 in 2 weist folgende Bestandteile auf: (1) einen Bildsensor 62, der hinter einer Bildobjektivanordnung (imaging lens arrangement) 60 positioniert ist, (2) eine Beleuchtungsobjektivanordnung (illuminating lens arrangement) 70, die vor einer Beleuchtungsquelle 72 positioniert ist, (3) einen Zielmustergenerator 80, der vor einer Ziellichtquelle 82 positioniert ist, und (4) eine Steuerung 90. In 2 sind die Bildobjektivanordnung 60, die Beleuchtungsobjektivanordnung 70 und der Zielmustergenerator 80 hinter dem Fenster 56 positioniert. Der Bildsensor 62 ist auf einer Leiterplatte 91 im Bildscanner angebracht.
-
Bei dem Bildsensor 62 kann es sich um ein CCD- oder CMOS-Bilderzeugungsbauelement handeln. Der Bildsensor 62 enthält in der Regel mehrere Pixelelemente. Diese mehreren Pixelelemente können von einer eindimensionalen Anordnung aus lichtempfindlichen Elementen gebildet werden, die linear in einer Zeile angeordnet sind. Diese mehreren Pixelelemente können auch von einer zweidimensionalen Anordnung aus lichtempfindlichen Elementen gebildet werden, die in zueinander orthogonalen Zeilen und Spalten angeordnet sind. Der Bildsensor 62 dient dazu, Licht zu erfassen, das entlang einem Strahlengang oder einer optischen Achse 61 durch das Fenster 56 verläuft und von einer Bildobjektivanordnung 60 aufgenommen wird. Der Bildsensor 62 und die Bildobjektivanordnung 60 sind allgemein so ausgelegt, dass sie zusammen Licht, das von einem Strichcode 40 gestreut oder reflektiert wird, über ein zweidimensionales Bilderzeugungssichtfeld (SF) als Pixeldaten aufnehmen.
-
Der Strichcode 40 kann sich generell innerhalb eines Arbeitsabstandsbereiches an beliebiger Stelle zwischen einem nahen Arbeitsabstand (AA1) und einem weiten Arbeitsabstand (AA2) befinden. Bei einer bestimmten Implementierung liegtAA1 in der Nähe des Fensters 56 und AA2 ein paar Fuß vom Fenster 56 entfernt. Manche Bildscanner können ein Abstandsmesssystem zum Messen des Abstands zwischen dem Strichcode 40 und der Bildobjektivanordnung 60 aufweisen. Manche Bildscanner können ein Autofokussystem aufweisen, damit ein Strichcode auf der Grundlage des gemessenen Abstands dieses Strichcodes deutlicher mit dem Bildsensor 62 abgebildet werden kann. Bei manchen Implementierungen des Autofokussystems wird die Brennweite der Bildobjektivanordnung 60 auf der Grundlage des gemessenen Abstands des Strichcodes angepasst. Bei manchen anderen Implementierungen des Autofokussystems wird der Abstand zwischen der Bildobjektivanordnung 60 und dem Bildsensor 62 auf der Grundlage des gemessenen Abstands des Strichcodes angepasst.
-
In 2 sind die Beleuchtungsobjektivanordnung 70 und die Beleuchtungsquelle 72 so ausgelegt, dass sie in einem Beleuchtungszeitraum zusammen ein auf den Strichcode 40 gerichtetes Beleuchtungslicht erzeugen. Die Beleuchtungsquelle 72 kann eine oder mehrere Leuchtdioden (LED) aufweisen. Die Beleuchtungsquelle 72 kann auch einen Laser oder andere Lichtquellenarten aufweisen. Der Zielmustergenerator 80 und die Ziellichtquelle 82 sind so ausgelegt, dass sie zusammen ein auf den Strichcode 40 gerichtetes, sichtbares Ziellichtmuster erzeugen. Ein solches Zielmuster kann von der Bedienperson zum genauen Zielen mit dem Bildscanner auf den Strichcode benutzt werden. Die Ziellichtquelle 82 kann eine oder mehrere Leuchtdioden (LED) aufweisen. Die Ziellichtquelle 82 kann auch einen Laser, LEDs oder andere Lichtquellenarten aufweisen.
-
In 2 ist die Steuerung 90, wie beispielsweise ein Mikroprozessor, zum Steuern des Bildsensors 62, der Beleuchtungsquelle 72 und der Ziellichtquelle 82 funktionsmäßig mit diesen Komponenten verbunden. Die Steuerung 90 kann auch zum Steuern anderer Einrichtungen in dem Bildscanner benutzt werden. Der Bildscanner 50 enthält einen Speicher 94, auf den die Steuerung 90 zum Speichern und Abrufen von Daten zugreifen kann. Bei vielen Ausführungsformen enthält die Steuerung 90 auch einen Decodierer zum Decodieren eines oder mehrerer Strichcodes, die sich im Bilderzeugungssichtfeld (SF) des Bildscanners 50 befinden. Bei manchen Implementierungen kann der Strichcode 40 durch digitales Verarbeiten eines aufgenommenen Bilds von dem Strichcode mit einem Mikroprozessor decodiert werden.
-
Gemäß manchen Ausführungsformen sendet die Steuerung 90 im Betrieb ein Befehlssignal, damit die Beleuchtungsquelle 72 für einen vorgegebenen Beleuchtungszeitraum mit Strom versorgt wird. Die Steuerung 90 belichtet dann den Bildsensor 62, um ein Bild von dem Strichcode 40 aufzunehmen. Das aufgenommene Bild von dem Strichcode 40 wird als Pixeldaten zur Steuerung 90 übertragen. Solche Pixeldaten werden von dem Decodierer in der Steuerung 90 zum Decodieren des Strichcodes digital verarbeitet. Die durch das Decodieren des Strichcodes 40 gewonnenen Informationen werden dann im Speicher 94 gespeichert oder zur weiteren Verarbeitung zu anderen Einrichtungen gesendet.
-
Strichcodebildlesegeräte verfügen in der Regel über ein eigenes internes Beleuchtungssystem, das Licht auf ein Strichcodeziel wirft. Die Lichtquelle ist aus Effizienzgründen meist kollinear zum Bilderzeugungssystem. Dies funktioniert bei Strichcodes auf Druckmedien gut, da reflektiertes Licht in der Regel gestreut wird. Seit einigen Jahren hat es die Strichcodebranche zunehmend mit Zeichen auf elektronischen Medien wie Mobiltelefonen zu tun. Der Strichcode wird meist auf einer LC- oder AMOLED-Anzeige hinter einem Glasfenster dargestellt. Leider blendet die Spiegelreflexion der Lichtquelle vom Glas in der Regel die Bildwandler und bringt das Belichtungsprogramm durcheinander. Daraufhin muss die integrierte Beleuchtung ausgeschaltet und die Belichtungszeit zum Lesen solcher Strichcodes erhöht werden. Die Steuerung des Lesegeräts kann über mehrere Belichtungszeiten verfügen: kurze zum Lesen von Strichcodes auf Papier sowie Vermeiden eines Vennrackelns und lange zum Lesen von elektronischen Strichcodes bei schwacher Beleuchtung. Der Nachteil besteht jedoch darin, dass dafür meist ein Spezialmodus erforderlich ist und häufig eine weniger dynamisch erscheinende Scanleistung entsteht. Darüber hinaus wird, da die Beleuchtung bei langer Belichtung ausgeschaltet sein muss, das Blinken der LEDs wahrnehmbar, was oft unerwünscht oder nicht akzeptabel ist.
-
Beim linearen Bildwandler kann das Problem mit der Spiegelreflexion durch Neigen des Mobiltelefons in einem beträchtlichen Winkel zum Scanner abgeschwächt werden. Es wurde jedoch festgestellt, dass sich die Anzeigedurchlässigkeit in Abhängigkeit von dem Winkel exponentiell verschlechtert, was meist zu einer langen Pixelbelichtung führt. Es wurde ebenfalls festgestellt, dass die geschliffenen Kanten der Glasfenster und die glänzenden Rahmen von Mobiltelefonen einfallendes Licht in alle Richtungen reflektieren, so dass selbst bei ausreichend großem Lesewinkel (Neigung) noch zwei symmetrische (oder je nach Gierwinkel auch asymmetrische) Lichtstreifen auf dem aufgenommenen Bild erscheinen. Diese Regionen sind in der Regel heller als der auf einem schwach beleuchteten Mobiltelefon angezeigte Strichcode. Dies bringt daher häufig das automatische Belichtungsprogramm durcheinander und führt dazu, dass nicht decodiert wird.
-
Es ist ein Bildscanner erwünscht, der besondere Merkmale am Mobiltelefon dazu benutzt, automatisch in einen Modus überzugehen, der für das Lesen von auf Mobiltelefonen angezeigten Strichcodes optimiert ist. Die meisten modernen Mobiltelefone nutzen chemisch gehärtetes Glas als Deckfenster für die Anzeige. Die Kanten der Fenster sind zwecks besserer Haltbarkeit und Sicherheit im Gebrauch in der Regel abgeschrägt und geschliffen. Der Rahmen oder das Gehäuse, der/das das Deckfenster umgibt, kann entweder glänzend oder matt sein. Die geschliffenen Kanten und der Rahmen am Mobiltelefon können (insbesondere bei normaler Abnutzung) einfallendes Licht, dessen Reflexionen vom Sensor registriert werden, selbst bei schrägen Neigungswinkeln beliebig streuen. Diese Reflexionen erscheinen als helle oder gesättigte Streifen auf dem aufgenommenen Bild. Sie können je nach Abstand des Mobiltelefons zum Scanner oder der Größe und Oberflächenbeschaffenheit der geschliffenen Fensterkanten und des umliegenden Rahmens von unterschiedlicher Größe sein.
-
Dies stellt beim Decodieren von auf schwach beleuchteten Mobiltelefonen angezeigten Strichcodes ein ernsthaftes Problem dar. Der Kontrast zwischen den hellen Streifen und dem eigentlichen Strichcode auf dem Mobiltelefon ist so groß, dass ein typisches Belichtungsautomatikprogramm den betreffenden Strichcode völlig ignoriert oder übersieht. 3A zeigt einen auf einem Mobiltelefon 45 angezeigten Strichcode 40, der mit einem linearen Bildwandler gescannt wird, wobei der Strichcode 40 auf das Sichtfeld (SF) des linearen Bildwandlers ausgerichtet ist. 3B zeigt eine grafische Darstellung eines Pixelhelligkeitsprofils eines Bilds von den Bestandteilen des Strichcodes 40 und des Mobiltelefons 45 im SF in 3A, wobei die jeweilige horizontale Achse entsprechend ausgerichtet wird, wenn die Anzeigehelligkeit des Mobiltelefons 45 auf einen relativ geringen Pegel eingestellt ist. Das Pixelhelligkeitsprofil in 3B zeigt zwei fast gesättigte Streifen 108 und 109, die außerhalb der ruhigen Region 102 des Strichcodes liegen. Bei diesen hellen Regionen kann es sich, wie bereits beschrieben, entweder um die das Mobilgerät haltende Hand, Hintergrund oder helle reflektierte Flächen handeln. Der Teil zwischen den hellen Regionen kann entweder völlig dunkel oder so schwach beleuchtet sein, dass manchmal nur ein Teil des gesamten Strichcodes angezeigt wird. Wie in der grafischen Darstellung in 3B ohne Weiteres zu erkennen ist, liegt in der Region, die dem eigentlichen Anzeigebereich entspricht, kaum oder nur wenig Modulation vor. Es wäre ein Bildscanner wünschenswert, der über eine bestimmte Belichtungsautomatik (BA) zum Anpassen der Belichtung verfügt, damit zumindest für den Teil des Bilds, der den Strichcode enthält, eine gewünschte Einstellung erzielt wird. Es wäre ein Verfahren wünschenswert, mit dem sich das Vorhandensein eines Mobilgeräts erfassen und die Belichtung dementsprechend so anpassen lässt, dass der Mobiltelefonbildschirm, der den Strichcode zeigt, angemessen belichtet wird, so dass ein erfolgreiches Decodieren gewährleistet ist.
-
Nachfolgend wird ein Verfahren zum Decodieren eines Strichcodes mit einem Bildscanner mit Belichtungsautomatik (BA) beschrieben. Der Bildscanner enthält einen Bildsensor mit einer Anordnung aus lichtempfindlichen Elementen. Das Verfahren zum Decodieren eines Strichcodes in einem Bilderzeugungssichtfeld eines Bildscanners umfasst im Allgemeinen Folgendes: (1) Erzeugen einer ersten Beleuchtung mit einem ersten Beleuchtungspegel, die auf ein Zielobjekt gerichtet ist, (2) Erfassen von vom Zielobjekt kommendem Licht mit der Anordnung aus lichtempfindlichen Elementen im Bildsensor, während das Zielobjekt mit der ersten Beleuchtung beleuchtet wird, zum Aufnehmen eines ersten Bilds in einem ersten Belichtungszeitraum, (3) Bestimmen einer ersten und einer zweiten Stelle auf einer Scanzeile in dem ersten Bild zum Finden einer Umschaltbedingung. Wenn die Umschaltbedingung das Vorhandensein einer mobilen Anzeigeeinrichtung in dem ersten Bild angibt, weist das oben beschriebene Verfahren ferner Folgendes auf: (1) Erzeugen einer zweiten Beleuchtung mit einem zweiten Beleuchtungspegel, die auf das Zielobjekt gerichtet ist, (2) Erfassen von vom Zielobjekt kommendem Licht mit der Anordnung aus lichtempfindlichen Elementen im Bildsensor, während das Zielobjekt mit der zweiten Beleuchtung beleuchtet wird, zum Aufnehmen eines zweiten Bilds in einem zweiten Belichtungszeitraum und (3) Decodieren des Strichcodes in dem zweiten Bild. Hier wird zumindest der zweite Beleuchtungspegel oder der zweite Belichtungszeitraum auf der Grundlage von Werten von Pixeln auf der Scanzeile zwischen der ersten und der zweiten Stelle in dem ersten Bild bestimmt.
-
4 ist ein Ablaufdiagramm für ein Verfahren 100 zum Decodieren eines Strichcodes gemäß einigen Ausführungsformen. Wie in 4 gezeigt ist, wird bei Block 110 und 120 eine erste auf das Zielobjekt 45 gerichtete Beleuchtung mit einem ersten Beleuchtungspegel erzeugt und in dem ersten Belichtungszeitraum ein erstes Bild vom Zielobjekt 45 aufgenommen, während das Zielobjekt mit der ersten Beleuchtung beleuchtet wird. Bei Block 130 werden dann eine erste und eine zweite Stelle auf einer Scanzeile in dem ersten Bild bestimmt, und bei Block 140 wird zum Erfassen des Vorhandenseins eines Mobilgeräts die Umschaltbedingung bewertet. Bei manchen Implementierungen wird, wenn die Umschaltbedingung nicht erfüllt ist, das erste Bild zum Decodieren eines Strichcodes verarbeitet. Bei manchen anderen Implementierungen beginnt das Verfahren 100, wenn die Umschaltbedingung nicht erfüllt ist, erneut bei Block 110.
-
Zum Bestimmen der Umschaltbedingung muss der Wert für „hell“ definiert werden. Dieser Wert kann aus dem Histogramm des Scans gewonnen werden. 5 ist das Histogramm zum Pixelhelligkeitsprofil in 3B. Die Messzahl des nicht Null betragenden Höchstwerts im Histogramm ist der Pixelhöchstwert im Scan. Der Wert für „hell“ wird als bestimmter Prozentsatz der maximalen Helligkeit definiert, wie beispielsweise 75%. Bei manchen Implementierungen ist ein solcher Pixelschwellwert auf einen vorgegebenen Bruchteil des Pixelhöchstwerts in dem ersten Bild eingestellt, und für den vorgegebenen Bruchteil kann eine Zahl zwischen 60% und 90% gewählt werden. Auf der Grundlage der Annahme, dass sich die Anzeige des Mobilgeräts in der Mitte oder in der Nähe der Mitte der Scanzeile befindet, sucht der Algorithmus von der Mitte des Scans ausgehend nach links und rechts und stoppt an Stellen, bei denen der Wert des Pixels „hell“ erreicht. Die rechte und die linke Stelle werden zum Finden der Umschaltbedingung als erste beziehungsweise zweite Stelle auf der Scanzeile benutzt. Bei dem Abstand zwischen der linken und der rechten Stelle handelt es sich um die durch die Objektivvergrößerung skalierte Größe der Anzeige des Mobilgeräts. Ist die Größe groß genug, beispielsweise mehr als ein Viertel des Gesamtscans, bestimmt der Algorithmus, dass ein Mobilgerät gescannt wurde. Bei anderen Implementierungen bestimmt der Algorithmus, dass ein Mobilgerät gescannt wurde, wenn der Abstand von der linken zur rechten Stelle als Prozentzahl der Gesamtlänge der Scanzeile größer ist als ein vorgegebener Faktor, für den eine Zahl zwischen 20% und 80% gewählt werden kann.
-
Wie in 4 gezeigt ist, wird dann, wenn die Umschaltbedingung erfüllt ist, bei Block 150 auf der Grundlage von Werten von Pixeln auf der Scanzeile zwischen der ersten und der zweiten Stelle in dem ersten Bild ein Belichtungspegel bestimmt. Das heißt, wenn bestimmt wird, dass ein Mobilgerät gescannt wurde, passt die Belichtungsautomatik (BA) die Belichtung auf der Grundlage des mittleren Abschnitts des Scans an. Somit deckt ein hellerer Abschnitt den Bildschirm des Mobilgeräts und um die Mitte herum liegende, sehr helle Regionen ab, wodurch es möglich wird, die Strichcodes auf sehr schwach beleuchteten Anzeigen zu decodieren. Wie beispielsweise in 3C gezeigt ist, weist die dem Strichcode entsprechende Region 102 nach dem Anpassen der Belichtung auf der Grundlage des mittleren Abschnitts des Scans erhebliche Helligkeitsmodulationen im Pixelhelligkeitsprofil auf, selbst wenn die Streifen 108 und 109 - die außerhalb der Region liegen, die dem tatsächlichen Anzeigebereich entspricht - so hell sind, dass sie den Messbereich überschreiten. In 4 wird nach dem Bestimmen des neuen (oder zweiten) Belichtungspegels bei Block 160 und 170 eine zweite auf das Zielobjekt gerichtete Beleuchtung mit einem zweiten Beleuchtungspegel erzeugt, und es wird im zweiten Belichtungszeitraum ein zweites Bild vom Zielobjekt aufgenommen, während das Zielobjekt mit der zweiten Beleuchtung beleuchtet wird. Schließlich wird bei Block 180 der Strichcode in dem zweiten Bild decodiert.
-
Das oben beschriebene Verfahren kann sowohl bei dem linearen Bildwandler als auch bei dem Bereichsbildwandler angewendet werden. Bei dem Strichcode auf dem Mobiltelefon kann es sich um einen ein- oder zweidimensionalen Strichcode handeln. Wenn das oben beschriebene Verfahren bei dem linearen Bildwandler angewendet wird, kann die Scanzeile von einer oder mehreren parallelen, eindimensionalen Matrizen aus lichtempfindlichen Elementen gebildet werden. Wenn das oben beschriebene Verfahren bei dem Bereichsbildwandler angewendet wird, der eine zweidimensionale Anordnung aus lichtempfindlichen Elementen enthält, kann die Scanzeile von einer virtuellen Scanzeile aus Pixeln in dem ersten Bild gebildet werden.
-
In der obigen Beschreibung wurden bestimmte Ausführungsformen beschrieben. Durchschnittsfachleuten wird jedoch klar sein, dass verschiedene Modifikationen und Änderungen vorgenommen werden können
-
Es versteht sich, dass manche Ausführungsformen aus einem oder mehreren generischen oder Spezialprozessoren (oder „Verarbeitungseinrichtungen“) wie Mikroprozessoren, Digitalsignalprozessoren, speziell angefertigten Prozessoren und Universalschaltkreisen (FPGA - Field Programmable Gate Array) und gespeicherten eindeutigen Programmanweisungen (einschließlich Software und Firmware) bestehen, die den einen oder die mehreren Prozessoren so steuern, dass in Verbindung mit bestimmten prozessorexternen Schaltkreisen einige, die meisten oder alle Funktionen des hier beschriebenen Verfahrens und/oder der hier beschriebenen Vorrichtung implementiert werden. Alternativ dazu können einige oder alle Funktionen durch einen Automaten, der nicht über gespeicherte Programmanweisungen verfügt, oder in einem oder mehreren anwendungsspezifischen integrierten Schaltkreisen (ASIC -Application Specific Integrated Circuit) implementiert werden, bei denen jede Funktion oder einige Kombinationen bestimmter Funktionen als spezifische Logik implementiert sind. Es kann natürlich eine Kombination aus beiden Herangehensweisen benutzt werden.
-
Darüber hinaus kann eine Ausführungsform als computerlesbares Speichermedium implementiert werden, auf dem computerlesbarer Code zum Programmieren eines Computers (z. B. mit einem Prozessor) zum Ausführen eines hier beschriebenen und beanspruchten Verfahrens gespeichert ist. Zu Beispielen für derartige computerlesbare Speichermedien gehören u. a. eine Festplatte, eine CD-ROM, eine optische Speichereinrichtung, eine magnetische Speichereinrichtung, ein ROM (Read Only Memory - Nurlesespeicher), ein PROM (Programmable Read Only Memory - programmierbarer Nurlesespeicher), ein EPROM (Erasable Programmable Read Only Memory - löschbarer programmierbarer Nurlesespeicher), ein EEPROM (Electrically Erasable Programmable Read Only Memory - elektrisch löschbarer programmierbarer Nurlesespeicher) und ein Flash-Speicher. Ferner wird davon ausgegangen, dass Durchschnittsfachleute trotz möglicherweise beträchtlicher Anstrengungen und zahlreicher Gestaltungsmöglichkeiten, die beispielsweise durch verfügbare Zeit, aktuelle Technologie und wirtschaftliche Gesichtspunkte begründet sind, anhand der hier offenbarten Konzepte und Prinzipien unter minimalem experimentellem Aufwand ohne Weiteres in der Lage sein werden, derartige Softwareanweisungen und Programme und integrierte Schaltkreise zu entwickeln.