2017-09-18 8 views
-3

Für ein Projekt muss ich einen Produktcode (ähnlich einem QR-Code) von einer Webcam lesen. Im Gegensatz zu einem QR-Code - der viele Python-Bibliotheken enthält, die das Scannen sehr einfach machen - muss ich einen benutzerdefinierten Produktcode erstellen - was bedeutet, dass ich eine benutzerdefinierte Bibliothek brauche. Das Code-Design ist sehr einfach - eine Form entspricht "1" und eine andere Form entspricht "0".Benutzerdefinierter Produktcode - Computer Vision - Python

Wer weiß, wie ich den Leser in Python programmieren würde? Welche Art von Algorithmus sollte ich untersuchen? In Bezug auf Programmierkenntnisse würde ich sagen, dass ich ein Anfänger bin (also bitte versuchen Sie, komplizierte Begriffe zu verwenden).

+0

Hallo, wäre es sinnvoll, wenn Sie hier etwas von Ihrem Code posten. Wo bist du so weit gekommen? Hast du versucht es zu programmieren? Andernfalls werden viele verärgerte Benutzer Sie abstimmen, weil es so aussieht, als würden Sie nur nach dem Code fragen. – BluePat

+0

Das ist die Sache, ich weiß nicht, wo ich anfangen soll. Nach was soll ich suchen? Z.B. Sollte ich Haarkaskaden erforschen? Usw. – Ben10

+0

Warum programmieren Sie nicht zuerst eine Kodierung? Machen Sie ein Modul, das 1 und 0 codiert, in die zwei verschiedenen Formen und dann ein anderes, das sie dekodiert. Oder müssen Sie einen visuellen Code physisch auf einem Papier haben? – BluePat

Antwort

0

Zuerst können Sie entwerfen ein einfaches Kodierungsschema und programmieren opencv verwenden. OpenCV verfügt über Methoden zum Zeichnen grundlegender Formen auf Bildern.

Sie können durch das Lesen this article auf Standard-Barcode-Erkennung starten. Wenn Ihr Code zu komplex ist, um mit dieser Methode erkannt zu werden, können Sie einen Haar-Klassifikator trainieren.

Je nach rthe Design des Codes, hough Linie verwandeln, Hough Kreis umwandeln, Homografie etc. verwendet werden, um den Code nach der Erfassung lesen zurück.

Ich schrieb einmal einen Encoder und Decoder blattartigen Mustern. Sie können mich unter [email protected] erreichen, wenn Sie den Code dafür haben wollen (der Code ist rostig und ich bin langsam, um zu antworten).

+0

Vielen Dank für die Hilfe! Zbar (zbar.sourceforge.net), ist die Bibliothek, die ich derzeit zum Lesen von QR-Codes verwende. Auf der "Über" -Seite heißt es, dass es das Bild als ein Array betrachtet, jede Zeile als eine Zeile von einem Laser-Barcodescanner liest und "einfache 1D-Signalverarbeitung" anwendet. Kann ich diese Methode verwenden, um meinen benutzerdefinierten Code zu erkennen? Welche Art von Algothim und '1D Signalverarbeitung' sollte ich verwenden? – Ben10

+0

Diese Methode kann theoretisch auf jeden benutzerdefinierten Code angewendet werden, der nur zwei Farben verwendet (eine für das Muster und eine andere für den Hintergrund). Da die Bibliothek QR-Codes lesen kann, hat sie eine bessere Funktionalität als ein Laser-Barcode-Scanner. Um einen 1D-Barcode aus einem 1D-Scannersignal zu decodieren, benötigen Sie Algorithmen wie Skalierung (Diagonal-Scanning), Korrelation (Dekodierung) und Filterung (Rauschunterdrückung, ohne das Barcode-Muster zu stark zu verwischen). – Totoro

+0

Wäre das schwieriger als die Verwendung, sagen wir mal eine Haar-Klassifikation oder die Verwendung von opencv-Bildmanipulationsmethoden? – Ben10