2016-04-14 5 views
0

Ich versuche, Programm zu erstellen, die Video von IP-Kamera anzeigen.Anzeigen Feed von IP-Kamera mit OpenCV (Emgu)

Dies ist mein Code:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Emgu.CV;     // 
using Emgu.CV.CvEnum;   // usual Emgu Cv imports 
using Emgu.CV.Structure;  // 
using Emgu.CV.UI; 
using System.IO; 
using System.Reflection; 
using System.Windows; 
using System.Runtime.InteropServices; 
using Emgu.Util; 
using System.Net; 


namespace WindowsFormsApplication1 
{ 
    public partial class Main : Form 
    { 
     public Main() 
     { 
      InitializeComponent(); 
     } 

     public Capture _capture; 
     public Mat imgOriginal; 

     private void imageBox2_Click(object sender, EventArgs e) 
     { 
     } 

     private void label1_Click(object sender, EventArgs e) 
     { 
     } 

     public void button1_Click(object sender, EventArgs e) 
     { 
      _capture = new Capture("http://192.168.1.148:8080/video"); 
      _capture.ImageGrabbed += ProcessFrame; 
      _capture.Start(); 
     } 

     public void ProcessFrame(object sender, EventArgs arg) 
     { 
      imgOriginal= _capture.QueryFrame(); 
      ibOriginal.Image = imgOriginal; 
     } 
    } 
} 

Es ist auf dieser Stufe (ohne Erwartung) stecken zu bleiben:

imgOriginal= _capture.QueryFrame(); 

Vielleicht sollte ich Sie Methode aufrufen, aber ich weiß nicht, wie. Im mit Emgu 3.1.0 Link to Doc

Antwort

1

Ich schaffte es, dies zu beheben. Ich habe einige kanonische und Syntaxfehler gemacht. Ich stelle Arbeitscode für die Gemeinschaft zur Verfügung:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Emgu.CV;     // 
using Emgu.CV.CvEnum;   // usual Emgu Cv imports 
using Emgu.CV.Structure;  // 
using Emgu.CV.UI; 
using System.IO; 
using System.Reflection; 
using System.Windows; 
using System.Runtime.InteropServices; 
using Emgu.Util; 
using System.Net; 


namespace WindowsFormsApplication1 
{ 
    public partial class Main : Form 
    { 
     public Main() 
     { 
      InitializeComponent(); 
      Run(); 
     } 

     public Capture _capture; 
     public Mat imgOriginal; 

     private void imageBox2_Click(object sender, EventArgs e) 
     { 
     } 

     private void label1_Click(object sender, EventArgs e) 
     { 
     } 
     void Run() 
     { 
      try 
      { 
       _capture = new Capture("http://192.168.1.148:8080/video"); 
      } 
      catch (Exception e) 
      { 
       MessageBox.Show(e.Message); 
       return; 
      } 

      Application.Idle += ProcessFrame; 
     } 
     void ProcessFrame(object sender, EventArgs e) 
     { 
      Mat frame = _capture.QueryFrame(); 

      ibOriginal.Image = frame; 
     } 
     public void button1_Click(object sender, EventArgs e) 
     { 



     } 


    } 
}