Проверьте, доступна или недоступна веб-камера с помощью EMGU.CV

Я работаю с несколькими веб-камерами в VB.NET, используя EMGU.CV, специально для записи видео в реальном времени.

Проблема в том, что когда камера отключена или внезапно работает со сбоями, мне нужно 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 именно поэтому изображение все еще доступно.

Затем, когда я пытаюсь поставить камеру обратно, она не возобновит запись. Это просто застряло там.

1 ответ

Если вы хотите обнаружить случайное отключение USB, вы можете иметь Timer control который проверит список устройств ввода, как описано в следующей ссылке

Вы также можете обратиться к этой ссылке. Он описывает все функции, которые вам нужны для работы с веб-камерой.

Другие полезные ссылки

Другие вопросы по тегам