Obtenir une image à partir de la vidéo

Je suis en train d'écrire une application qui peuvent accéder à des caméras connectées à un PC, l'enregistrement d'une vidéo et d'obtenir une image de la vidéo. J'utilise AForge.NET les bibliothèques pour accéder aux caméras: http://www.aforgenet.com/framework/

Je ne sais pas comment l'événement nommé AForge.Vidéo.NewFrameEventHandler œuvres. Dans ce code, l'événement renvoie la valeur null à une image au lieu d'une nouvelle image à partir d'une vidéo ou l'événement n'est pas appelé. Je veux obtenir des images de la vidéo à une zone de l'image à chaque fois que cadre pour faire quelque chose comme un flux vidéo et après cliquez sur le bouton stop, je veux la dernière image pour rester affichée dans la zone d'image. Personne ne sait comment? Et pourquoi mon code ne fonctionne pas?

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AForge.Video.DirectShow;
using System.Drawing;
using AForge.Video;

namespace CameraDevice
{
    public class CameraImaging
    {
        //enumerate video devices
        public FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice );
        //camera
        public VideoCaptureDevice videoSource;
        //screen shot
        public Bitmap bitmap;
        public CameraImaging()
        {
            //create video source
            VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString );
            //set NewFrame event handler
            videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame );
        }
        public void StartVideo(VideoCaptureDevice videoSource)
        {
            //start the video source
            videoSource.Start();
            //...
        }
        public void StopVideo(VideoCaptureDevice videoSource)
        {
            //stop the video source
            videoSource.Stop();
            //...
        }
        private void video_NewFrame( object sender, NewFrameEventArgs eventArgs )
        {
            //get new frame
            bitmap = eventArgs.Frame;
            //process the frame
        }
    }
}

Le même code est ici: http://www.aforgenet.com/framework/features/directshow_video.html[^]

Dans les Windows Forms-je utiliser cette vidéo dans un thread qui n'cette méthode:

private void VideoRecording()
    {
        camImg.videoSource.Start();

        while (!StopVideo)
        {
            pictureBox1.Image = camImg.bitmap;
            pictureBox1.Invalidate();
        }
        camImg.videoSource.Stop();

    }

source d'informationauteur Pepin z Hané