comment détecter la couleur à partir d'une image matlab?
nous faisons un tapis de laboratoire de robotique de projet.qui, de fait, trie les objets en fonction de sa couleur, donc nous avons besoin d'un algorithme pour détecter la couleur spécifique de l'image capturée à partir d'un appareil photo à l'aide de tapis de laboratoire.
il sera d'une grande aide si quelqu'un peut m'aider avec elle.son de la vidéo du projet
Vous devez vous connecter pour publier un commentaire.
En réponse à Amro réponse:
Les cinq carrés ci-dessus ont tous la même valeur de la Teinte dans l'espace HSV. La sélection en fonction de la Teinte est utile, mais vous aurez envie d'imposer certaines contraintes sur la Saturation et la valeur ainsi.
HSV permet de décrire la couleur d'un homme de manière significative, mais vous avez encore besoin de regarder toutes les trois valeurs.
Vous voudrez probablement de se convertir à l'espace couleur HSV, et de détecter les couleurs sur la base des valeurs de Teinte. MATLAB offre la RGB2HSV fonction.
Ici est un exemple présentation sur l'Échange de Fichier qui illustrent la couleur de détection basé sur la teinte.
Comme un point de départ, je voudrais utiliser l'espace rvb et de la norme euclidienne pour détecter si un pixel a une couleur donnée. En général, vous avez 3 valeurs d'un pixel:
[red green blue]
. Vous avez également aussi les 3 valeurs de la définition d'une cible de couleur:[255 0 0]
pour le rouge. Calculer la norme euclidienne entre ces deux vecteurs, et d'appliquer un seuil de décision de classer la couleur de votre pixel.Finalement, vous voulez vous débarrasser de la luminance de facteur (j'.e est-il un rouge vif ou rouge foncé?). Vous pouvez passer à HSV de l'espace et utiliser la même norme sur la valeur H. Ou vous pouvez utiliser
[red/green blue/green]
vecteurs. Avant cela, appliquer un filtre passe-bas pour les images, parce que les divisions (également présent dans le hsv2rgb transformer) ont tendance à augmenter le bruit.Pour l'obtention d'une seule couleur, masque, tout d'abord convertir rvb de gris de l'image à l'aide de rgb2gray. Aussi extraire la couleur désirée avion à partir de l'image rvb(par exemple pour l'obtention de la plaine rouge donner rgb_img(:,:,1)). Soustraire le plan donné de gris de l'image........