Jeffrey Cross
Jeffrey Cross

Codebox: Verwenden Sie in der Verarbeitung QR-Codes

Diese Codebox zeigt Ihnen, wie Sie die ZXing-Bibliothek ("Zebra Crossing") zur Identifizierung von QR-Codes in einem Live-Webcam-Feed verwenden. (Obwohl Processing über eine umfangreiche Bibliothek namens QRCode verfügt, ist der ZXing viel schneller und kann in Echtzeit erkannt werden.) Die Skizze sucht nach QR-Codes mit einer kodierten O’Reilly-ISBN (ISBN-Nummern sind Standardbuchkennungen). Wenn es einen findet, wird das Titelbild des Buches über den QR-Code auf das Video gelegt.

Über QR-Codes Bevor Sie in den Code springen, ein wenig Hintergrund. Ein QR-Code besteht aus zwei Grundelementen - den drei Positionierungselementen, den großen quadratischen Blöcken an den drei Ecken, und den Datenelementen, die alles andere sind. Die Positionierungselemente helfen der Software, die Position und Ausrichtung des QR-Codes zu bestimmen. Die Datenelemente repräsentieren die codierten Daten. Beispielsweise kann es sich um eine Produktnummer, eine URL oder (in unserem Fall hier) eine ISBN handeln. Der Code enthält auch einige Informationen zur Fehlerkorrektur. Das folgende Bild soll Ihnen die Grundidee vermitteln:

Sie können eine Site wie Kaywa verwenden, um den Code zu generieren. Hier ein Beispiel, wie Sie einen Code für "9780596510510" generieren, die ISBN für Tom Igoes Buch Making things Talk:

Einrichten der Skizze

Als erstes müssen Sie ZXing herunterladen und mit Ihrem Java-Compiler zwei Dateien erstellen: core.jar und javase.jar. Wenn Sie mit Java vertraut sind, müssen Sie nur in die Verzeichnisse "core" und "javase" gehen und dort ant ausführen, um die JAR-Dateien zu erstellen.

Wenn nicht, habe ich sie für Sie zusammengestellt. (Aber sag es niemandem - dies verstößt wahrscheinlich gegen die Lizenzanforderungen oder die andere. Laden Sie einfach javase.jar und core.jar herunter. (Eine JAR-Datei wie eine ZIP-Datei für Java, die mehrere Dateien komprimiert und bündelt.)

Sobald Sie die JAR-Dateien haben, starten Sie die Verarbeitung, und fügen Sie sie mit „Sketch -> Add File“ Ihrem Projekt hinzu. Fügen Sie dann den Skizzencode in das Hauptcodefenster ein. Sie können es aus der Datei qr_codes.pde abrufen oder aus der folgenden Codebox ziehen:

Drucken Sie einige QR-Codes für verschiedene O’Reilly-Bücher aus und starten Sie die Skizze. Wenn Sie die Codes der Webcam anzeigen, sollte das Titelbild nach einer kurzen Verzögerung angezeigt werden. Natürlich können Sie auch beliebige andere Informationen verschlüsseln.

Diskussion Das Setup ähnelt dem, das wir in den Posts auf OpenCV verwendet haben. Zuerst richten wir ein neues Leserobjekt ein, wie folgt:

com.google.zxing.Reader reader = new com.google.zxing.MultiFormatReader ();

Dann übergeben wir dem Leser ein Bild, das einen QR-Code enthalten könnte. In diesem Fall übergeben wir nur die von der Webcam eingehenden Frames. Es ist etwas komplexer, da wir einige Änderungen am Rohbild vornehmen müssen, bevor wir den Decoder verwenden können zeichnen() Methode:

LuminanceSource source = new BufferedImageLuminanceSource ((BufferedImage) cam.getImage ()); BinaryBitmap-Bitmap = neue BinaryBitmap (neuer HybridBinarizer (Quelle)); Ergebnis result = reader.decode (Bitmap);

Sobald wir angerufen haben dekodieren(), das Leser Das Objekt enthält Daten über alle erkannten QR-Codes. Das getResultPoints () Diese Methode gibt die Koordinaten aller Positionsindikatoren und die getText () Methode gibt den kodierten Text zurück. Angenommen, wir haben etwas gefunden, versuchen wir einfach, das entsprechende Cover von der O’Reilly-Site abzunehmen und anzuzeigen. Wie eine kleine Falte verfolgen wir die letzte ISBN, die wir gefunden haben, so dass wir nicht immer dasselbe Bild in jedem Frame laden.

Diese Demo sollte Ihnen das meiste vermitteln, was Sie für Ihr eigenes QR-Hacken mit Processing benötigen. Habe Spaß!

PS: Wenn Sie Windows verwenden, müssen Sie WinVDIG und QuickTime installieren, um die Webcam in Processing verwenden zu können.

Mehr: Schauen Sie sich hier alle Codebox-Spalten an

In der Schuppenhalle:


Erste Schritte mit Processing Lernen Sie die Computerprogrammierung auf einfache Weise mit Processing, einer einfachen Sprache, mit der Sie Code zum Erstellen von Zeichnungen, Animationen und interaktiven Grafiken verwenden können. Programmierkurse beginnen normalerweise mit der Theorie, aber in diesem Buch können Sie direkt in kreative und unterhaltsame Projekte einsteigen. Es ist ideal für alle, die grundlegende Programmierung erlernen möchten, und ist eine einfache Einführung in die Grafik für Personen mit Programmierkenntnissen.

Aktie

Leave A Comment