1

我正在尝试为 WPF/C# 中的一个应用程序从网络摄像头捕获图像

1)我尝试了 WIA,但我发现错误 0x80210015,我已经读到当没有可用的 WIA 设备时会发生此错误。我读到在 windows vista/7 WPD 中使用了 insted WIA 但是当我尝试一个简单的例子时

PortableDeviceManager deviceManager = new PortableDeviceManager();
deviceManager.RefreshDeviceList();

uint numberOfDevices = 1;

deviceManager.GetDevices(null, ref numberOfDevices);

if (numberOfDevices == 0)
{
    Console.WriteLine("No device");
}
else
{
    string[] deviceIds = new string[numberOfDevices];
    deviceManager.GetDevices(ref deviceIds[0], ref numberOfDevices);

    Console.WriteLine(deviceIds);
}

Console.Read();

我无法检测到设备。

2)我尝试使用http://easywebcam.codeplex.com/工作,但我随机收到错误“捕获视频图像时发生错误。视频捕获...”我需要始终选择设备,我需要执行 webcam.start() 几次(2 或 3 次)以使相机正常工作。

我有两个网络摄像头

  • Chicony Web 2.0(内置网络摄像头)
  • 天才 FaceCam 2000
4

1 回答 1

0

这是一个简单的拍照类程序

  Image<Bgr, Byte> img; 
    private Capture capture;
    private bool captureInProgress;

    private void gumb_kamera_Click(object sender, EventArgs e)
    {

    }

    private void processFunction(object sender, EventArgs e)
    {
         img = capture.QueryFrame();

       //  imageBox1.Image = img;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        if (capture == null)
        {
            try
            {
                capture = new Capture(0);
            }
            catch (NullReferenceException excpt)
            {
                MessageBox.Show(excpt.Message);
            }
        }

        if (capture != null)
        {
            if (captureInProgress)
            {
                Application.Idle -= processFunction;
            }
            else
            {
                Application.Idle += processFunction;
            }
            captureInProgress = !captureInProgress;
        }



    }

    private void button1_Click(object sender, EventArgs e)
    {



    imageBox1.Image = img; 

    }
于 2012-07-06T15:54:59.100 回答