本文主要是介绍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.UtilPublic Class Form1Dim _capture As Capture = NothingDim _captureInProgress As BooleanPrivate 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 SubSub switchCapture()'启停摄像头If Not (_capture Is Nothing) ThenIf (_captureInProgress) Then_capture.Pause()Else_capture.Start()End If_captureInProgress = Not _captureInProgressEnd IfEnd SubSub 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 = frameEnd SubEnd Class
参考文献:http://blog.csdn.net/azkabannull/article/details/7827673
这篇关于EmguCV中的实时视频显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!