WebCam Capture c#罗技

问题描述

我制作了这个程序,用于从Logitech HD Pro WebCam c920拍摄图像。

该程序实际上适用于集成摄像头,但是当我想使用Logitech Webcam的流程时 我什么都没有...(没有图像,没有错误)。

我想知道是否有人遇到相同的问题或有什么可以帮助我解决的问题...

我的程序仅用于使用aForge在c#上从WebCam logitech拍照。

我有代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Accord;
using AForge.Video;
using AForge.Video.DirectShow;

namespace WindowsFormsApp1
{
    public partial class Webcam : Form
    {
 public Webcam()
        {
            InitializeComponent();
        }
        FilterInfoCollection filterInfoCollection;
        VideoCaptureDevice videoCaptureDevice;
       
        private void btnStart_Click(object sender,EventArgs e)
        {
            videoCaptureDevice = new VideoCaptureDevice(filterInfoCollection[cboCamera.Selectedindex].MonikerString);
            videoCaptureDevice.NewFrame += VideoCaptureDevice_NewFrame;
            videoCaptureDevice.Start();

        }

        private void VideoCaptureDevice_NewFrame(object sender,NewFrameEventArgs eventArgs)
        {
            pic.Image = (Bitmap)eventArgs.Frame.Clone();
        }
        private void Webcam_Load(object sender,EventArgs e)
        {
            filterInfoCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach(FilterInfo filterinfo in filterInfoCollection)
            {
                cboCamera.Items.Add(filterinfo.Name);
                cboCamera.Selectedindex = 0;
                videoCaptureDevice = new VideoCaptureDevice();
            }
        }

        private void Webcam_FormClosing(object sender,FormClosingEventArgs e)
        {
            if (videoCaptureDevice.IsRunning == true)
                videoCaptureDevice.SignalToStop();
        }

btnstart是按钮,cboCamera是一个组合框,pic是一个图片框。

解决方法

我有一个非常相似的问题。虽然我不知道为什么会这样,但我已经测试了以下解决方案:

  1. 使用Media Capture API-似乎可以与所有网络摄像机一起使用,但是我遇到了很多稳定性问题。
  2. 使用此Versatile WebCam C# library-似乎可以正常工作。

我尚未测试Emgu / OpenCV,但这是另一种选择。