1

WPF / C#の1つのアプリケーションのWebカメラから画像をキャプチャしようとしています

1)WIAを試しましたが、エラー0x80210015が発生しました。このエラーは、使用可能なWIAデバイスがない場合に発生することを読みました。Windows Vista / 7ではWPDが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回)実行します。

私は2つのウェブカメラを持っています

  • Chicony Web 2.0(内蔵Webカメラ)
  • Genius 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 に答える