使用Visual 2008和Emgu CV,我可以在我的PC上捕捉网络摄像头的流。我想做的是连接到IP摄像机,知道它的URL,使用Capture = New ().
下面是我的代码:
Imports Emgu.CV
Imports Emgu.CV.Util
Imports Emgu.CV.Structure
Public Class Form1
Dim capturez As Capture = New Capture("rtsp://[IP Address]/mpeg4/media.amp")
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim imagez As Image(Of Bgr, Byte) = capturez.QueryFrame()
PictureBox1.Image = imagez.ToBitmap()
End Sub
End Class我得到以下错误:无法从rtsp://IP地址/mpeg4 4/media.amp创建捕获
是否可以使用Capture = New来完成这个任务?如果没有,他们还有其他方法吗?
谢谢。
发布于 2013-08-31 14:34:30
这是我最后使用的解决方案。它只适用于JPEG网络摄像机(不是MJPEG),不需要EmguCV。
'Connect To Webcam ----------------------------------------------------------------------
Dim NumberFrames As Integer = 1
Dim imgNum = Convert.ToString(FrameNumber)
Dim sourceURL As String = ("http://91.142.238.200/record/current.jpg?rand=" + imgNum)
'create HTTP request
Dim req As HttpWebRequest = HttpWebRequest.Create(sourceURL)
'get response
Dim res As HttpWebResponse = req.GetResponse
'get response stream
Dim reader As New StreamReader(res.GetResponseStream())
'read data from stream
Dim img As Image = Image.FromStream(res.GetResponseStream())
'get bitmap
PictureBox1.Image = img
'Increment frame
FrameNumber = FrameNumber + 1
'-----------------------------------------------------------------------------------------发布于 2013-04-12 20:49:29
这个相机有ip用户名和密码吗?如果你尝试这样的方法:
Imports Emgu.CV
Imports Emgu.CV.Util
Imports Emgu.CV.Structure
Public Class Form1
Dim capturez As Capture = New Capture("rtsp://username:password@[IP Address]/mpeg4/media.amp")
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim imagez As Image(Of Bgr, Byte) = capturez.QueryFrame()
PictureBox1.Image = imagez.ToBitmap()
End Sub
End Classhttps://stackoverflow.com/questions/15934961
复制相似问题