मैं एक ऐसा एप्लिकेशन लिखने की कोशिश कर रहा हूं जो पीसी से जुड़े कैमरे तक पहुंच सके, वीडियो रिकॉर्ड कर सके और वीडियो से एक छवि प्राप्त कर सके। मैं कैमरे तक पहुंचने के लिए AForge.NET पुस्तकालयों का उपयोग करता हूं: http://www.aforgenet.com/framework/वीडियो से छवि प्राप्त करें
मुझे नहीं पता कि एएफर्ज.विडियो.NewFrameEventHandler नामक घटना कैसे काम करती है। इस कोड में ईवेंट किसी वीडियो से नए फ्रेम की बजाय बिटमैप पर शून्य हो जाता है या ईवेंट नहीं कहा जाता है। मैं वीडियो स्ट्रीम की तरह कुछ बनाने के लिए हर बार फ्रेम पर वीडियो से एक फ्रेम बॉक्स में फ्रेम प्राप्त करना चाहता हूं और स्टॉप बटन पर क्लिक करने के बाद मैं चाहता हूं कि आखिरी छवि चित्र बॉक्स में प्रदर्शित रहें। क्या किसी को पता है कि कैसे? और मेरा कोड क्यों काम नहीं करता है?
कोड:
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
}
}
}
समान कोड यहाँ है: http://www.aforgenet.com/framework/features/directshow_video.html[ ^]
विण्डोज़ फॉर्म्स मैं एक धागा जो इस पद्धति करता है में इस वीडियो को चलाने में:
private void VideoRecording()
{
camImg.videoSource.Start();
while (!StopVideo)
{
pictureBox1.Image = camImg.bitmap;
pictureBox1.Invalidate();
}
camImg.videoSource.Stop();
}
AForge.NET वीडियो कैप्चर हार्डवेयर तक पहुंचने के लिए देशी डायरेक्टशो एपीआई का उपयोग करता है।हो सकता है कि आप [DirectShow.NET] (http://directshownet.sourceforge.net/) लाइब्रेरी को देखना चाहें, जो .NET ऐप्स और वीडियो कैप्चर एपीआई के बीच सबसे व्यापक रूप से उपयोग किया जाने वाला "पुल" है। –