问题描述
我制作了这个程序,用于从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是一个图片框。
解决方法
我有一个非常相似的问题。虽然我不知道为什么会这样,但我已经测试了以下解决方案:
- 使用Media Capture API-似乎可以与所有网络摄像机一起使用,但是我遇到了很多稳定性问题。
- 使用此Versatile WebCam C# library-似乎可以正常工作。
我尚未测试Emgu / OpenCV,但这是另一种选择。