【问题标题】:Check if a webcam is available/unavailable using EMGU.CV使用 EMGU.CV 检查网络摄像头是否可用/不可用
【发布时间】:2017-03-31 01:22:13
【问题描述】:

我正在使用 EMGU.CV 在 VB.NET 中处理多个网络摄像头,专门用于实时录制视频。

问题是,当相机被拔掉或突然出现故障时,我需要包含图像捕获的PictureBox 只显示任何内容。

我正在使用此代码:

    Try
                '===================== CAM 1
                imagez0 = Capturez0.RetrieveBgrFrame
                PictureBox1.BackgroundImage = imagez0.ToBitmap()
                Videoz.WriteFrame(imagez0)
                drawbitmap1 = New Bitmap(PictureBox1.Width, PictureBox1.Height)
                graph = Graphics.FromImage(drawbitmap1)
                graph.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
                graph.DrawString(x + " | CAM 1 | Faculty", Label1.Font, brush, PictureBox1.Location)
                PictureBox1.Image = drawbitmap1
            Catch ex As Exception
                Capturez0.Stop()
                imagez0 = Nothing
                Videoz.WriteFrame(imagez0)
                PictureBox1.Image = Nothing
                PictureBox1.BackgroundImage = Nothing
                Videoz = Nothing
End Try

但是当我尝试拔下网络摄像头时,它只挂在它捕获的最后一张图像上,然后什么也不做,只是挂在那个图像上。我认为代码不属于Catch exception,这就是图像仍然可用的原因。

然后,当我尝试将相机放回原处时,它不会继续录制。它只是卡在那里。

【问题讨论】:

    标签: vb.net webcam-capture emgucv


    【解决方案1】:

    如果您想检测 USB 意外拔出,那么您可以使用 Timer control 来检查输入设备列表,如下面的link 所述

    您也可以参考这个link。它描述了使用网络摄像头所需的所有功能。

    其他有用的链接

    【讨论】:

    • 我试着把它放在定时器上,还是不行。我得到了同样的结果。
    猜你喜欢
    • 2017-10-07
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多