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# Discussion :

Gestion d'une Webcam [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 59
    Par défaut Gestion d'une Webcam
    Bonjour à tous, ce n'est pas la première fois que je demande de l'aide, ni la dernière mais bon ^^'

    J'vous explique la situation :

    Je dois réaliser un projet en C# qui gère l'enregistrement d'un flux vidéo de la webcam (c'est la première partie du projet) et je ne trouve aucun tutoriel explicite pour réaliser ça de façon simple...

    Merci d'avance à ceux qui m'aideront !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Par défaut
    Bonjour,

    je crois qu'une des nouveautés de silverlight 4 est la gestion de la webcam

  3. #3
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    C'est quelque chose que je n'ai jamais fait ; mais, sur le net, j'ai trouvé ça.
    J'espère que ça va t'être utile.

    Surtout, tiens-nous au courant de tes progrès. C'est un projet intéressant !

  4. #4
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 59
    Par défaut
    Mon prof m'a proposé d'utiliser EMGUCV mais j'arrive pas à m'en sortir... je trouve des tutos mais jamais avec les bons liens à télécharger pour les librairies etc...

    et merci d'avoir répondu si vite les gars !

    Je suis en train de regarder sur le wiki de emgucv : http://www.emgu.com/wiki/index.php/D...lation#Windows si quelqu'un a des idées ou une aide à me proposer j'y dis pas non

    [EDIT]
    Si quelqu'un s'y connaît un peu j'accepte volontiers de l'aide parce que la je m'en sors pas du tout... le emgucv qui se mélange à l'opencv etc j'ai la tête qui s'embrouille...[/EDIT]

  5. #5
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 59
    Par défaut
    Re tout le monde !
    Voilà à quoi je suis arrivé entre temps par un codage simple grâce à Emgu CV. Maintenant je cherche à comment enregistrer un flux vidéo grâce à cette bibliothèque... Si quelqu'un sait... Merci d'avance les gars !


    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Emgu.CV;
    using Emgu.CV.Structure;
    using Emgu.Util;
     
    namespace CameraCapture
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private Capture capture;        //capture les images de la webcam
            private bool captureInProgress; // vérifie la capture
     
            private void btnStart_Click(object sender, EventArgs e)
            {
                #region if capture is not created, create it now
                if (capture == null)
                {
                    try
                    {
                        capture = new Capture();
                    }
                    catch (NullReferenceException excpt)
                    {
                        MessageBox.Show(excpt.Message);
                    }
                }
                #endregion
               if (capture != null)
                {
                    if (captureInProgress)
                    {  //si la caméra est enclenché alors btnStart.text = start ! 
                        btnStart.Text = "Start!"; //
                        Application.Idle -= ProcessFrame;
                    }
                    else
                    {
                        //si la caméra n'est pas enclenché changer le nom du btnStart en "Stop"
                        btnStart.Text = "Stop";
                        Application.Idle += ProcessFrame;
                    }
     
                    captureInProgress = !captureInProgress;
                }
            }
     
            private void ProcessFrame(object sender, EventArgs arg)
            {
                Image<Bgr, Byte> ImageFrame = capture.QueryFrame();  //line 1
                CamImageBox.Image = ImageFrame;        //line 2
            }
     
            private void ReleaseData()
            {
                if (capture != null)
                    capture.Dispose();
            }
     
            private void btnSave_Click(object sender, EventArgs e)
            {
               //Code pour capturer le flux vidéo.
            }
        }
    }

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Par défaut
    Bonjour,

    En parcourant l'API de EMGUCV , j'ai trouvé la classe VideoWriter qui à une méthode WriteFrame qui semble correspondre à ton besoin.

    Je pense qu'il faut l'utiliser à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CamImageBox.Image = ImageFrame;
    lorsque tu souhaite faire une capture.

    Bon courage.

  7. #7
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 59
    Par défaut
    J'suis arrivé à enregistrer une vidéo mais le problème c'est la taille du fichier et de la hauteur/longueur de la vidéo... pour une vidéo de 10sec le fichier pèse 110 MO ...

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Emgu.CV;
    using Emgu.CV.Structure;
    using Emgu.Util;
     
    namespace CameraCapture
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private Capture capture;        //capture les images de la webcam
            private bool captureInProgress; // vérifie la capture
     
            VideoWriter VCapture;
     
            private void btnStart_Click(object sender, EventArgs e)
            {
                #region if capture is not created, create it now
                if (capture == null)
                {
                    try
                    {
                        capture = new Capture();
                    }
                    catch (NullReferenceException excpt)
                    {
                        MessageBox.Show(excpt.Message);
                    }
                }
                #endregion
               if (capture != null)
                {
                    if (captureInProgress)
                    {  //si la caméra est enclenché alors btnStart.text = start ! 
                        btnStart.Text = "Start!"; //
                        Application.Idle -= ProcessFrame;
                    }
                    else
                    {
                        //si la caméra n'est pas enclenché changer le nom du btnStart en "Stop"
                        btnStart.Text = "Stop";
                        Application.Idle += ProcessFrame;
                    }
                    captureInProgress = !captureInProgress;
                }
            }
     
            private void ProcessFrame(object sender, EventArgs arg)
            {
                Image<Bgr, Byte> ImageFrame = capture.QueryFrame(); 
                CamImageBox.Image = ImageFrame;        //affiche le flux dans la CamImageBox
                if(VCapture != null)
                    VCapture.WriteFrame<Bgr, Byte>(ImageFrame);
            }
     
            private void ReleaseData()
            {
                if (capture != null)
                    capture.Dispose();
            }
     
            private void btnSave_Click(object sender, EventArgs e)
            {
                VCapture = new VideoWriter(@"output.avi",24, 640, 480, true);
            }
     
            private void btnStop_Click(object sender, EventArgs e)
            {
                VCapture = null;
            }
     
        }
    }

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

Discussions similaires

  1. Gestion de la luminosité d'une webcam
    Par black_hole dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 03/03/2014, 20h47
  2. Gestion superposition images d'une webcam
    Par ballon17 dans le forum Débuter
    Réponses: 2
    Dernier message: 25/08/2012, 15h03
  3. Gestion d'une webcam
    Par Julien1934 dans le forum DirectX
    Réponses: 3
    Dernier message: 07/06/2011, 09h47
  4. Gestion d'une webcam sous Matlab
    Par velkouby dans le forum Images
    Réponses: 1
    Dernier message: 08/07/2009, 21h19
  5. gestion d'une webcam
    Par thierrybatlle dans le forum Delphi
    Réponses: 1
    Dernier message: 26/06/2006, 23h54

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