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 :

soustraction de fond opencv


Sujet :

OpenCV

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur réglementation télécoms
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur réglementation télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 16
    Points
    16
    Par défaut soustraction de fond opencv
    bonsoir tous le monde

    j'ai suivi l'algorithme suivant pour la détection de premier plan

    Dn(x,y) = 0 si Sn(x,y)<= Th

    Dn(x,y) = 1 sinon

    Sn(x,y)= abs( In(x,y) - Bn(x,y))

    et Th= MED + 3* 1.4826* MAD avec MED = median(Sn(x,y)) et MAD=median(Sn(x,y)-MED)

    1- j'aimerais bien vérifier si la valeur de seuil est déterminé comme suivant:
    emm forte probabilité que mon implementation est fausse puisque le type de retour de th est une matrice et il faut que th soit une valeur (double) pour appliquer la fonction threshold alors quelle est la fonction utilisé pour calculer MED et MAD??. pour plus d'information MED est le parametre median qui correspond à la valeur typique de bruit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Mat MED, MAD;
        medianBlur(fg_mask, MED, 3);
        medianBlur((fg_mask-MED), MAD,3);
        Mat th=MED+ 3* 1.4826*MAD;
    2- j'ai fait cet algorithme comme une fonction qui dépend de deux entrées et retourne une image (Mat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mat foreground(Mat background, Mat current)
    alors dans la fonction main () j'ai fait un appel de cette fonction, le code est comme suivant ici j'aimerais verifier aussi si les instructions sont justes ou pas avec In(x,y) et Bn(x,y) correspond a un instant n (emmm j'initialise le background par la premiere frame puis je bloque: background sera inchangé). comment peux je resoudre ca?
    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
    int main()
    {
            Mat background, frame1;
            VideoCapture capture;
    while(1)
    {
        //while permet le rouvrant la capture à chaque fois la vidéo atteint sa dernière image
          capture.open("C:/Users/sbi/Documents/Visual Studio 2010/Projects/FireDetection/clips/9.avi");
          if (!capture.isOpened())
          {
             cout <<"ERROR\n";
          }
          capture.read(background);
          //vérifier si la video atteint la derniere image
         //nous ajoutons -1 parce que nous lisons deux cadres de la vidéo à la fois
        //si cela ne est pas inclus, nous obtenons une erreur de mémoire
          while(capture.get(CV_CAP_PROP_POS_FRAMES)<capture.get(CV_CAP_PROP_FRAME_COUNT)-1)
            {
                //lecture du premiere image
                capture.read(frame1);
                foreground(background, frame1);
                imshow ("Frame1", frame1);
            }
        capture.release();
    }
            return 0;
    }
    merci pour vos aide

  2. #2
    Membre actif Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Points : 221
    Points
    221
    Par défaut
    Bonsoir,
    OpenCV a une fonction d'extraction du fond : http://docs.opencv.org/trunk/doc/tutorials/video/background_subtraction/background_subtraction.html

    Tu peux t'inspirer du code.
    "Nulla Tenaci Invia Est Via"
    Aux persévérants aucune route n'est interdite

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur réglementation télécoms
    Inscrit en
    Mars 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur réglementation télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2015
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    bonjour

    tout d'abord merciii uiii je sais qu'il existe des fonctions pretes et j'ai déja fait ca.
    mais mon but est de faire une comparaison entre l'implementation de ce code et le fonction offerte par opencv

    help me please )

Discussions similaires

  1. Détection de fond avec openCv
    Par nicodu43 dans le forum OpenCV
    Réponses: 3
    Dernier message: 16/01/2012, 15h15
  2. [Débutant] soustraction du fond par les GMM
    Par amelSIC dans le forum Images
    Réponses: 6
    Dernier message: 03/04/2011, 16h03
  3. Suppression de fond (soustraction d'arrière-plan)
    Par Renaud-62 dans le forum OpenCV
    Réponses: 1
    Dernier message: 22/10/2009, 13h11
  4. Soustraction de fond
    Par contremaitre dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 26/03/2008, 11h50
  5. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14

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