Bonjour à tous

1)
Je suis en train de développer une application qui détecte des véhicules et j'aurais besoins d'aide pour la détection des couleurs.
Pour la détection j'utilise d'abord la méthode Viola et Jones, puis on voit le véhicule détecte, il faut que je détermine sa couleur.
J'ai sept véhicule à détecter et a chaque détection, je voudrais pouvoir comparer mon véhicule au sept couleur et ainsi avoir sa teinte.
Voila ce que j'arrive a faire pour l'instant

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
  detecteur.detectMultiScale( frame_gray, detect, 1.1,2,0,Size(80,80),Size(800,800)); // On detecte les véhicules.
    for(  unsigned int i = 0; i < detect.size(); i++ )
    {
        rectangle(frame, detect[i], Scalar(0,50,0), 2); // On affiche les rectangles
 
        //Systeme de détection des couleur
 
            couleur=frame.clone();
            couleur = couleur(Rect(detect[i].x, detect[i].y, detect[i].width, detect[i].height)); // on étudie que la zone détecté
            cv::cvtColor(couleur, couleur, CV_BGR2HSV); // On met l'image en HSV
            inRange(couleur, Scalar(teinte-tolerance,saturation-tolerance,0), Scalar(teinte+tolerance,saturation+tolerance,255), couleur); // On recherche la couleur
            dilate( couleur, couleur, getStructuringElement(MORPH_RECT, Size(3, 3)) );  // On lisse les pixels
 
            imshow ("couleur",couleur);
            imshow("frame",frame);
     }
Ce que je n'arrive pas a faire c'est à analyser l'image binaire pour dire si la couleur est présente ou pas

2)
Je me demandais si c'était interresant de séparer mon arrière-plan afin d'avoir juste les véhicules présents a l'écran.
Est-ce que cela accélérerais mon traitement? Sachant que je travaille a partir d'une caméra fixe.


Merci d'avance.