Détecter de couleur RVB intervalle avec OpenCV et C++
Je voudrais détecter un rouge couleur de l'objet dans une vidéo ou une image, avec OpenCV et C++. Quels algorithmes sont disponibles pour ce faire?
Je voudrais faire une comparaison de la relation entre les niveaux de couleur. En effet, lorsque la luminosité varie, le ratio reste constant. Je tiens donc à déterminer l'intervalle de valeurs acceptables pour les couleurs de la zone d'intérêt.
Pour les cas je regarde le rouge R (x, y) et G (x, y) /R (x, y) et B (x, y) /R (x, y).
Je puis trouver les plages de valeurs acceptables: pour se faire une première idée,
il libère le maximum et minimum pour chaque rapport à partir d'une palette de l'image
rouge
Je voudrais trouver quelque chose comme ceci :
si minR<=R(x,y)<=maxR et minG<=G(x,y)<=maxG minB<=B(x,y)<=maxB donc
couleur(x,y)= - blanc d'autre couleur(x,y)=NOIR
s'il vous plaît je peux parler avec quelqu'un pour plus de détails sur skyp???
Si vous êtes à la recherche d'embaucher quelqu'un, de me trouver sur twitter. 🙂
Je vous suggère de restauration modifier parce que vous êtes en posant une nouvelle question. Donc, accepter une réponse ici, et puis poser une autre question.
OriginalL'auteur SOS | 2012-01-26
Vous devez vous connecter pour publier un commentaire.
Prétraitement de l'image à l'aide de cv::inRange() avec la couleur nécessaire limites d'isoler rouge. Vous pouvez transformer un espace de couleurs comme le HSV ou YCbCr pour une plus grande stabilité de la couleur de limites parce que la chrominance et la luminance sont mieux séparés. Vous pouvez utiliser cvtColor() pour cela. Découvrez ma réponse ici pour un bon exemple de l'utilisation de
inRange()
aveccreateTrackbar()
.Ainsi, le modèle de base serait:
EDIT : suffit d'utiliser la trackbars pour déterminer la gamme de couleur que vous souhaitez isoler, puis utilisez la couleur des intervalles que vous trouvez que le travail. Vous n'avez pas à constamment utiliser le trackbars.
EXEMPLE :
Ainsi, pour un exemple complet du modèle ici, vous allez,
J'ai créé un simple (et dans l'idéal) de l'image dans GIMP, illustré ci-dessous:
Puis j'ai créé ce programme pour filtrer toutes les mais les carrés rouges:
REMARQUE : Vous ne serez pas en mesure de les utiliser exactement le même filtre intervalles pour vos images; je vous suggère de vous régler les intervalles de trackbars pour voir ce qui est acceptable.
La sortie ressemble à ceci:
Le tour est joué! Seul le carré rouge reste 🙂
Profiter 🙂
Voir modifier...
pouvez-vous me donner un tutoriel ou un code pour m'aider!! merci
Pourquoi ne pas mettre à niveau vers OpenCV 2.3.1? À propos de cet exemple ne fonctionne pas pour vous?
inRange
est disponible dans OpenCV 2.1, sont doncMat
objets...Il suffit de passer le comprend à
#include <opencv/cv.h>
, et de supprimer le<opencv2/*/*.hpp>
lignes.OriginalL'auteur mevatron
Dans ce cas, essayez de trouver tout dispositif unique pour votre carré qui le distinguent des autres carrés.
Par exemple,
1) Couleur du carré:- Si la couleur est différente de toutes les autres places, vous pouvez vérifier à l'intérieur de chaque carré, puis sélectionnez square avec de la couleur, comme l'a expliqué mevatron.
2) la Taille de la place :- Si vous connaissez la taille de carré, puis de comparer la taille de chaque carré et sélectionner le meilleur.
Je ne suis pas sûr de comprendre votre question. Mieux ajouter une image dans votre question pour question pour être clair. De toute façon, une fois que vous connaissez l'emplacement de square, prendre chaque pixel et de vérifier si elle tombe dans la zone rouge.
s'il vous plaît l'idée est de savoir comment je peut trouve de la place, entre tous les carrés dans l'image, car après cela, je vais faire de la reconnaissance c'est pourquoi j'ai besoin d'extraire uniquement le carré que j'ai besoin
arkiaz, je suis un nouvel utilisateur pour le site donc je ne peux pas ajouter une photo je peux vous donner quelques dtails avec skyp "sossos1926" merci
contactez-moi à [email protected]. Je n'ai pas skype.
OriginalL'auteur Abid Rahman K
Vous pouvez convertir votre image à partir de la valeur RGB dans le HSV de type intégré à l'aide de la fonction. Après vous pouvez trouver toutes les couleurs a quelques HSV gamme de valeur. De sorte que vous pouvez la trouver et lui donner en guise de seuil et de différencier les points de d'autres.
OriginalL'auteur Darshan