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

VB.NET Discussion :

Superposer cercle sur flux video [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut Superposer cercle sur flux video
    Bonjour,

    Je voudrais afficher un cercle (DrawEllipse) sur le flux video d'une webcam.
    J'ai recuperé un code sur internet qui permet de visualiser le flux via une picturebox.

    J'ai placé un panel sur la picturebox. Le parent du panel est la picturebox.
    J'ai placé un bouton. Un clic dessine le cercle sur le panel
    g = Panel1.CreateGraphics()
    g.DrawEllipse(Pens.Red, 10, 10, 10, 10)

    Je demarre le débogage, connecte la webcam, la video s'affiche. Le panel est transparent. Je clic que le bouton, le cercle s'affiche.

    Problème : le cercle ne s'affiche qu'un court instant. Il disparait dès que l'image suivante de la video est affichée.
    Je peux cliquer sur le bouton, à chaque fois le cercle s'affiche mais que sur ce court instant.

    Comment faire pour qu'il s'affiche "tout le temps" ?

    Franck

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    essaye en t'abonnant à l'event paint du pctbox
    e.Graphics.drawellipse( ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Merci d'avoir pris du temps pour mon problème.

    Avant de demander de l'aide, j'ai pas mal regardé sur internet car je craignais, en faisant appel à un forum, ne pas comprendre les propositions de solution.

    Ce que je craignais arriva. Est-ce ceci que tu veux que j'intègre au code.
    Private Sub picturebox1_paint(ByVal sender As System.Object, ByVal e As PaintEventArgs) Handles picturebox1.Paint
    e.Graphics.DrawEllipse(Pens.Red, 10, 10, 10, 10)
    End Sub

    Je t'avoue que je ne comprends pas ce que j'écris.
    Ces lignes n'ont pas d'erreur mais ne m'apportent rien de plus.

    Pour l'instant j'ai contourné le problème en incluant un timer. Le button démarre le timer (50ms) qui affiche le cercle. Mes images arrivant à une cadense moins élevée, je n'ai pas de scintillement du cercle.

    En attendant d'avoir une solution plus adéquate, je vais conserver le timer qui me permet de faire avancer mon projet.

    Franck

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    oui c'était bien ca que je disais

    après les winforms ont des limites techniques, et dessiner sur une vidéo doit en être une, les vidéos étant gérées en dehors de .net

    que le timer marche ca m'étonne aussi

    éventuellement pour mieux comprendre, il faudrait que tu testes en utilisant le timer pendant quelques secondes seulement pour voir si le cercle disparait ou s'il reste
    pour ca tu peux faire

    private _nb as integer

    et dans timer1_tick faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    _nb +=1
    if _nb = 50 then timer1.stop ' 50*50ms = 2.5 secondes
    s'il ne reste pas j'ai bien peur que seul le timer puisse te sauver
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Homme Profil pro
    Astronome amateur
    Inscrit en
    Avril 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Astronome amateur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 11
    Par défaut
    Avec ton code, le cercle met + de 2,5 s pour "disparaître".
    Cela dépend de la vitesse du flux vidéo.

    A 5 images/s, le cercle disparaît au bout d'une dizaine de secondes.
    A 30 images/s, le cercle disparaît au bout de ... je ne sais pas, j'ai coupé au bout de 2mn et il était toujours affiché

    Avec mon button qui démarre et qui stop le timer. J'ai ma solution, quelque soit la vitesse du flux.

    Merci pour ton aide

    Franck

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/06/2011, 09h43
  2. Réponses: 0
    Dernier message: 15/11/2010, 12h28
  3. Réponses: 5
    Dernier message: 29/03/2010, 10h05
  4. [Video] Réception d'un flux video H264 sur RTP
    Par manubot dans le forum Multimédia
    Réponses: 0
    Dernier message: 06/08/2008, 15h19
  5. Réponses: 6
    Dernier message: 10/03/2006, 13h50

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