Comment reconnaître les couleurs du nuancier?

9

Je développe une application de vision qui utilise le nuancier ci-dessous et la caméra pour extraire la couleur de chaque patch du nuancier. Pour ce faire, je dois d'abord détecter la zone du graphique dans une image et faire correspondre la zone avec le modèle existant qui contient les emplacements des correctifs.

Ma question: je dois détecter la zone du patch de couleur en reconnaissant les quatre coins du graphique. Vous pouvez voir les coins que les petits rectangles encadrés indiquent dans l'image ci-dessous. Je sais qu'une façon de procéder consiste à laisser l'utilisateur sélectionner ces coins en cliquant dessus. Mais existe-t-il un moyen de détecter automatiquement les quatre coins de l'image?

entrez la description de l'image ici

Tae-Sung Shin
la source
Juste curieux, où peut-on acquérir un tel nuancier de couleurs?
hotpaw2
@ hotpaw2 Comme presque toujours, google. Recherche du terme "cible it8"
Tae-Sung Shin

Réponses:

4

Vous pouvez loger des lignes épaisses pour détecter la zone de couleur

  • Détectez d'abord toutes les lignes
  • Les lignes avec la plus longue longueur seraient les plus extérieures
  • Choisissez la ligne horizontale supérieure et faites correspondre le modèle pour les carrés.
  • Une fois que vous avez trouvé les carrés, parcourez le péage vers le bas pour atteindre l'autre ensemble de carrés.
  • Marquez tous les points où les carrés ont été trouvés
  • Vous avez maintenant une zone englobante pour le nuancier.
Wajih
la source
2

Chaque réseau 2D d'une composante de couleur (RVB, et al.) Est assez contrasté et distinctif. Je pourrais donc essayer d'utiliser une FFT 2D complexe de chaque composante de couleur pour déterminer l'échelle et le décalage de l'image photo par rapport à celui d'une image de référence. Ensuite, utilisez-les pour ajuster les coordonnées mesurées / connues des coins et / ou des patchs dans l'image de référence pour produire des coordonnées dans la photo.

Vous devrez peut-être mesurer directement certaines coordonnées sur une image de référence à l'aide d'un éditeur de bitmap.

hotpaw2
la source
1

Dans un premier temps - je supprimerais tout le fouillis de gris et de texte. En partant des quatre côtés, je m'arrêterai jusqu'à ce que la majorité des pixels soient de couleur "grise" uniquement connue.

Cela ne vous laissera que le damier composé de différentes couleurs. Vous attendez environ 22x12 - environ 264 couleurs.

Une méthode la plus simple serait d'appliquer un algorithme de palatalisation plus simple. Si vous devez traduire cela dans une image GIF - il applique une quantification des couleurs avec chaque groupe de couleurs représenté comme la couleur du centroïde.

Ce serait particulièrement facile dans votre cas, car la source est déjà une sorte de palais et vous pouvez faire une bonne estimation décente pour commencer.

Regarde ça:

NeuQuant: http://members.ozemail.com.au/~dekker/NEUQUANT.HTML

Octree Color Quantization: http://www.cubic.org/docs/octree.htm . Voir aussi cela .

Ce ne sont que quelques références; mais vous trouverez du code prêt à l'emploi dans la plupart des bibliothèques qui utilisent de tels formats d'image. (BMP, PNG et GIF prennent en charge ces représentations). Consultez également libpng et libjpeg pour quelques implémentations rapides.

Dipan Mehta
la source
0

Pourquoi ne pas chercher les limites du graphique au lieu des coins? Vous pouvez essayer d'utiliser un détecteur de bord, puis trouver des lignes droites à l'aide de la transformation de Hough.

Dima
la source