使用 Emgu CV 在多个相机之间切换

发布于 2024-12-07 23:18:00 字数 79 浏览 0 评论 0原文

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

谢谢。

I have a quick question: I need to switch between the two camera on a tablet. Front and Back. By default, the Front camera is always used by Emgu CV.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剑心龙吟 2024-12-14 23:18:00

好的。有一个不同的构造函数。我正在 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);
    }

问候。

Ok. There is a different constructor. I was building upon the 7 line demo for Emgu CV.

Using the correct overloaded constructor, this is what did the trick for me:

    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);
    }

Regards.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文