EmguCV中的实时视频显示

Posted lc__________

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EmguCV中的实时视频显示相关的知识,希望对你有一定的参考价值。

EmguCV中的Capture类可以完成视频文件的读取,并且能捕获每一帧。

捕获的帧可绑定事件,实时对捕获的图片进行处理。

Imports Emgu
Imports Emgu.CV
Imports Emgu.CV.Capture
Imports Emgu.CV.CvEnum
Imports Emgu.CV.Structure
Imports Emgu.Util
Imports Emgu.CV.Util


Public Class Form1

   Dim _capture As Capture = Nothing
   Dim _captureInProgress As Boolean
   Private Sub initCapture()
        _capture = New Capture()
        _capture.SetCaptureProperty(CapProp.FrameWidth, 1600)
        _capture.SetCaptureProperty(CapProp.FrameHeight, 1200)
        _capture.SetCaptureProperty(CapProp.FrameCount, 1)
        AddHandler _capture.ImageGrabbed, AddressOf ProcessFrame
       '启动摄像头
        switchCapture()
    End Sub

    Sub switchCapture()
        '启停摄像头
        If Not (_capture Is Nothing) Then
            If (_captureInProgress) Then
                _capture.Pause()
            Else
                _capture.Start()
            End If
            _captureInProgress = Not _captureInProgress
        End If
    End Sub

   Sub ProcessFrame(sender As System.Object, e As System.EventArgs)
 	Dim bkWhite As New Bgr(Color.White)
        '获得当前的图像QueryFrame()
        Dim frame As Image(Of Bgr, Byte) = New Image(Of Bgr, Byte)(_capture.Width, _capture.Height)
        _capture.Retrieve(frame)
        frame = frame.Rotate(270, bkWhite, False)

        Dim img As Image(Of Gray, Byte) = New Image(Of Gray, Byte)(frame.Width, frame.Height)
        frame.Convert(Of Gray, Byte).CopyTo(img)
        '控件实时显示摄像头捕获的视频
        ImageBoxEdit.Image = frame
   End Sub

End Class


参考文献:http://blog.csdn.net/azkabannull/article/details/7827673

以上是关于EmguCV中的实时视频显示的主要内容,如果未能解决你的问题,请参考以下文章

directshow Emgucv入门

使用 EmguCV 3.1.0.1 从视频捕获中检测

C# OpenCV VideoWriter 以意想不到的颜色保存

浅入浅出EmguCvEmguCv打开指定视频

emgucv.坑02_摄像头视频fps不对

emgucv有没有教程