Winforms 使用Emgu CV在多个摄像头之间切换

Winforms 使用Emgu CV在多个摄像头之间切换,winforms,c#-4.0,emgucv,Winforms,C# 4.0,Emgucv,我有一个简短的问题:我需要在平板电脑上的两个摄像头之间切换。正面和背面。默认情况下,Emgu CV始终使用前摄像头 谢谢。好的。有一个不同的构造函数。我是在Emgu CV的7行演示的基础上构建的 使用正确的重载构造函数,这就是我的诀窍: private Capture _capture; private void InitCapture(Int32 _camIndex) { try { if (_capture != n

我有一个简短的问题:我需要在平板电脑上的两个摄像头之间切换。正面和背面。默认情况下,Emgu CV始终使用前摄像头


谢谢。

好的。有一个不同的构造函数。我是在Emgu CV的7行演示的基础上构建的

使用正确的重载构造函数,这就是我的诀窍:

    private Capture _capture;

    private void InitCapture(Int32 _camIndex) {         
        try {
            if (_capture != null) {
                Application.Idle -= ProcessFrame;               
            }

            _capture = new Capture(_camIndex);
            Application.Idle += ProcessFrame;
        }
        catch (NullReferenceException excpt) {
            XtraMessageBox.Show(excpt.Message);
        }
    }

    private void ProcessFrame(object sender, EventArgs arg) {
        Image<Bgr, Byte> frame = _capture.QueryFrame();
        ImageBoxCapture.Image = frame;
    }

    private void CharmsBarBase_ButtonTop01Click(object sender, EventArgs e) {
        InitCapture(0);
    }

    private void CharmsBarBase_ButtonTop02Click(object sender, EventArgs e) {
        InitCapture(1);
    }
private-Capture\u-Capture;
私有void InitCapture(Int32_camIndex){
试一试{
如果(_capture!=null){
Application.Idle-=ProcessFrame;
}
_捕获=新捕获(_camIndex);
Application.Idle+=ProcessFrame;
}
捕获(NullReferenceExcpt){
XtraMessageBox.Show(异常消息);
}
}
私有void ProcessFrame(对象发送方、事件args arg){
图像帧=_capture.QueryFrame();
ImageBoxCapture.Image=frame;
}
私有void CharmsBarBase_buttonop01click(对象发送方,事件参数e){
初始捕获(0);
}
私有void CharmsBarBase_buttonop02click(对象发送方,事件参数e){
初始捕获(1);
}

问候。

你好。我无法将Mat结果从QueryFrame传递到图像。您使用的是哪个版本的Emgu?我试过3.1.0和3.4。3@Joster已经很长时间了。我不再在那个项目或任何其他性质相同的项目中工作。