2017-09-18 3 views
-3

Pour un projet, j'ai besoin de lire un code de produit (similaire à un code QR), à partir d'une webcam. Cependant, contrairement à un code QR - qui a beaucoup de bibliothèques python qui rendent l'analyse très facile - je dois créer un code de produit personnalisé - ce qui signifie que j'ai besoin d'une bibliothèque personnalisée. La conception du code est très simple - une forme correspond à '1' et une autre forme correspond à '0'.Code produit personnalisé - Vision par ordinateur - Python

Est-ce que quelqu'un sait comment je programmerais le lecteur en python? Quel genre d'algorithme devrais-je examiner? En termes de compétence de programmation, je dirais que je suis un débutant (alors s'il vous plaît essayez de ne pas utiliser des termes compliqués).

+0

Salut, il serait utile, si vous postez une partie de votre code ici. Où êtes-vous allé si loin? Avez-vous essayé de le coder? Sinon, il y aura beaucoup d'utilisateurs fâchés qui vous voteront parce qu'il semblerait que vous demandiez simplement le code. – BluePat

+0

C'est la chose que je ne sais pas par où commencer. Que devrais-je rechercher? Par exemple. Devrais-je faire des recherches sur les cascades de haar? Etc. – Ben10

+0

Pourquoi ne pas programmer un encodage en premier? Faire un module qui code 1 et 0 dans les deux formes différentes, puis un autre qui les décode. Ou devez-vous avoir un code visuel physiquement sur un papier? – BluePat

Répondre

0

Vous pouvez d'abord concevoir un schéma d'encodage simple et le programmer en utilisant opencv. OpenCV a des méthodes pour dessiner des formes de base sur les images.

Vous pouvez commencer par lire this article sur la détection de code à barres standard. Si votre code est trop complexe pour être détecté en utilisant cette méthode, vous pouvez former un classificateur Haar. En fonction de la conception de votre code, la transformation de ligne de creux, la transformation de cercle de Hough, l'homographie, etc. peuvent être utilisées pour relire le code après détection.

J'ai déjà écrit un encodeur et un décodeur en utilisant des motifs semblables à des feuilles. Vous pouvez me contacter à [email protected] si vous voulez le code pour cela (le code est rouillé et je suis lent à répondre, cependant).

+0

Merci beaucoup pour l'aide! Zbar (zbar.sourceforge.net), est la bibliothèque que j'utilise actuellement pour lire les codes QR. Sur la page 'about', il est indiqué qu'il regarde l'image sous la forme d'un tableau, lit chaque ligne comme une ligne d'un scanner de codes à barres laser et applique un 'simple traitement de signal 1D'. Puis-je utiliser cette méthode pour détecter mon code personnalisé? Quelles sortes d'algrothims et de «processioning du signal 1D» devrais-je utiliser? – Ben10

+0

Cette méthode peut théoriquement être appliquée à n'importe quel code personnalisé qui n'utilise que deux couleurs (une pour le modèle et une autre pour l'arrière-plan). Puisque la bibliothèque peut lire les codes QR, cela signifie qu'elle a une meilleure fonctionnalité qu'un scanner de codes à barres laser. Pour décoder un code-barres 1D à partir d'un signal scanner 1D, vous avez besoin d'algorithmes tels que la mise à l'échelle (correction diagonale), la corrélation (décodage) et le filtrage (réduction du bruit). – Totoro

+0

Serait-ce plus difficile que d'utiliser, disons une classe Haar, ou en utilisant des méthodes de manipulation d'image opencv? – Ben10