IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

probleme avec inRange pour binariser (amateur)


Sujet :

OpenCV

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut probleme avec inRange pour binariser (amateur)
    bonjour,

    voila je commence avec openCV et bloque déja sur la binarisation d'une image. Je veux tout simplement mettre ma balle de tennis en blanc et le reste en noir mais tout est noire

    voici mon code vous verrez peut etre tout de suite d'ou vient le probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    int main()
    {	
    	int lowH = 40;    //couleur verte
    	int highH = 70;
     
    	int lowS = 230;      
    	int highS = 255;
     
    	int lowV = 230;		//brillance de la lumiere
    	int highV = 255;
     
    	int tolerance = 10;
     
    	Mat inputFrame, hsvFrame, outputFrame;
    	VideoCapture camCapture(0); // on recupere le flux vidéo de ma webcam
     
    	cvNamedWindow("Stream cam input", CV_WINDOW_NORMAL);
    	cvNamedWindow("Stream cam hsv", CV_WINDOW_NORMAL);
    	cvNamedWindow("Stream cam output", CV_WINDOW_NORMAL);
     
    	if (!camCapture.isOpened()) std::cout << "error cam stream" << std::endl;
     
    	while (1)
    	{
    		camCapture.read(inputFrame); // je recupere une image du flux de ma cam
     
    		cvtColor(inputFrame, hsvFrame, CV_BGR2HSV); //je convertie en HSV pour limiter les variations de couleur avec les variations de lumiere
     
    		cv::inRange(hsvFrame, cv::Scalar(lowH - tolerance, lowS - tolerance, lowV), cv::Scalar(highH + tolerance, highS + tolerance, highV), outputFrame);
     
                    keyboard = waitKey(30);
    		if (keyboard == 27) break;
     
    		imshow("Stream cam input", inputFrame);
    		imshow("Stream cam hsv", hsvFrame);
    		imshow("Stream cam output", outputFrame);
    	}
    	cvDestroyWindow("Stream cam input");
    	cvDestroyWindow("Stream cam hsv");
    	cvDestroyWindow("Stream cam output");
    }
    Je récupere bien mon flux original, le hsv mais le flux de sortie avec la binarisation je recois un écran noir, je pense que le probleme vient de inRange() mais je trouve pas

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 274
    Points : 56
    Points
    56
    Par défaut
    re,

    le probleme vient des variables lowH, lowS, lowV qui ne correspondent pas à la couleur de l'objet.

    On peut facilement récupérer ces variables expérimentalement avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /*
    		permet de connaitre les valeurs HSV de l'objet que l'on veut tracker
    	*/
    	cvCreateTrackbar("LowH", "HSV adjustement", &lowH, 179); //Hue (0 - 179)
    	cvCreateTrackbar("HighH", "HSV adjustement", &highH, 179);
    	cvCreateTrackbar("LowS", "HSV adjustement", &lowS, 255); //Saturation (0 - 255)
    	cvCreateTrackbar("HighS", "HSV adjustement", &highS, 255);
    	cvCreateTrackbar("LowV", "HSV adjustement", &lowV, 255); //Value (0 - 255)
    	cvCreateTrackbar("HighV", "HSV adjustement", &highV, 255);
    voila

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec IE pour alignement en haut dans un tableau
    Par italiasky dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 05/02/2007, 12h48
  2. Directx 8 Probleme avec setrenderTarget pour un rendu du monde sur une texture
    Par zerailkiller dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 14/01/2007, 13h50
  3. Probleme avec DateDiff pour les années....
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 27/03/2006, 09h19
  4. Probleme avec ODBC pour la V8.
    Par chad33 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 04/03/2005, 23h57
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo