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

C++Builder Discussion :

detection de mouvement


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Avril 2007
    Messages
    63
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par d�faut detection de mouvement
    Bonjour;
    j'essaye de r�aliser une application en temps r�el sous builder c++ 6 de detection de mouvement, j'utilise pour �a une webcam. mon probleme est le temps important de traitement, ce qui influt n�gativement sur l'efficacit� de mon application. y a quelque chose qui me manque mais je ne sais pas quoi exactement?? peut etre qu'il me faut une optimisation de mon code, ca peut etre le probleme majeur??? je vous informe que j'utilise le composant Timer.
    alors qu"est ce que vous voyez???

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    BOnjour
    peux tu nous informer plus pr�cis�ment sur la proc�dure suivie pour faire de la d�tection de mouvement � partir d'une webCam
    cordialement
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Comme tout n'est pas suppos� se mettre en mouvement au m�me moment (sauf si quelqu'un vole la webcam ), il suffit de comparer l'�tat de certains pixels par raport � ceux d'une image au repos.
    On peut tr�s bien s�quencer ce test sur l'ensemble des pixels, de trame en trame, pour obtenir un test sur l'ensemble des pixels toutes les n trames, ce qui peut �ventuellement �tre suffisant. En fait, c'est ainsi que fonctionne la vision humaine, avec son propre protocole de s�quencement.
    Tout d�pend de la v�locit� du mouvement, donc que cherche t-on � d�tecter ?

    A plus !

  4. #4
    Membre confirm�
    Inscrit en
    Avril 2007
    Messages
    63
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par d�faut
    merci d'avance;
    je fais pour la detection une simple difference entre une image acquise par le webcam et une image de fond converties toutes les deux en niveaux gris puis seuill�es, dans mon cas, la conversion en niveaux de gris prend un temps important, le code suivant est un exemple � am�liorer :

    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    getcwd (rep, MAXPATH) ;
    sprintf (nomfic, "%s\\b.bmp", rep) ;
    capFileSaveDIB(Form1->capvideo, nomfic) ;
    Image2->Picture->LoadFromFile(nomfic);
    for (i=0;i<= 351;i++)
    for (j=0;j<= 287;j++)
    {
    b[i][j] = Image2->Picture->Bitmap->Canvas->Pixels[i][j];
    }

    byte rouge ,vert, bleu;
    int nivgri;
    for (i=0;i<= 351;i++)
    for (j=0;j<= 287;j++)
    {
    rouge = GetRValue(b[i][j]);
    vert = GetGValue(b[i][j]);
    bleu = GetBValue(b[i][j]);
    nivgri = rouge+vert+bleu;
    b[i][j] =nivgri/3;
    }
    for (i=0;i<= 351;i++)
    for (j=0;j<= 287;j++)
    {
    if(abs(a[i][j]-b[i][j])>20)
    Image2->Canvas->Pixels[i][j]=RGB(255,255,255);
    else
    Image2->Canvas->Pixels[i][j]=RGB(0,0,0);
    }
    }

    comment je peux optimiser ce code pour avoir une execution en temps r�el ?? et est ce que c'est utile d'utiliser Timer???

  5. #5
    Membre �prouv�
    Profil pro
    Inscrit en
    Ao�t 2006
    Messages
    190
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 190
    Par d�faut
    Bonsoir,
    N'oublie pas les balises '[CODE]' la prochaine fois.
    Plutot que d'utiliser Pixels, utilise ScanLine pour ton traitement des pixels.
    Tu devrais d�j� gagner pas mal de temps.
    Cordialement,
    Benjamin

    EDIT: et puis plutot que de faire troix boucles for cons�cutives, arrange toi pour qu'il n'y en ai plus qu'une.

  6. #6
    Membre confirm�
    Inscrit en
    Avril 2007
    Messages
    63
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par d�faut
    excusez moi de ne pas avoir utilis� les balises code, j'ai essay� d'utiliser "scanline" mais je n'ai pas r�ussi, je ne comprends pas son principe:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    pBitmap->LoadFromFile(nomfic);
        for (int y = 0; y < pBitmap->Height; y++)
        {
          ptr = (Byte *)pBitmap->ScanLine[y];
     
          for (int x = 0; x < pBitmap->Width; x++)
            {
            ptr[x] = (Byte)y;
     }
     
        }
        Canvas->Draw(0,0,pBitmap);
      }
    je n'arrive pas � comprendre comment �a fonctionne et comment integrer mon code de calcul de niveaux de gris � l'interieur.

Discussions similaires

  1. reduction du bruit et detection de mouvement
    Par marco13 dans le forum Traitement d'images
    R�ponses: 9
    Dernier message: 14/01/2009, 14h30
  2. Detection de mouvement Robuste
    Par bmw13fr dans le forum Traitement d'images
    R�ponses: 2
    Dernier message: 27/09/2007, 11h12
  3. Probleme de detection de mouvement
    Par laurrrette dans le forum Traitement d'images
    R�ponses: 3
    Dernier message: 28/02/2007, 13h02
  4. Detection de mouvement / reconnaissance des zones
    Par BNS dans le forum Traitement d'images
    R�ponses: 7
    Dernier message: 04/05/2006, 21h17

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