Matlab Görüntü İşleme

Başlatan wtrk, 18 Şubat 2019, 13:00:02

wtrk

Arkadaşlar selamlar.

Elimizde bir IP kamera var bu IP kamera ile görüntü işleme yapmak istiyoruz. Hali hazırda bunun için  hazır kodlar varmı acaba destek olmanız ricasıyla.

Biz USB webcam ile yapılan görüntü işleme için kodlar bulduk, webcam ile yaptık çalışıyor ancak IP kamera ile yapamadık.
NoBody Can Stop Me!!!!!

tunayk

şu durumda asıl sorun IP kameradan resim almakta sanırım. Markadan markaya değişmekle beraber, http protokolünde doğrudan anlık resim ("snapshot") alabilirsiniz çoğu markada. Dahua markalı bir cihaz için C# dilinde aşağıdaki şekilde resim alabiliyoruz.  Resim aldıktan sonraki kısmı zaten usb tarafı ile aynı;
        private void button1_Click(object sender, EventArgs e)
        {

        byte[] buffer = new byte[2500000];
        int read, total = 0;
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://192.168.2.108/cgi-bin/snapshot.cgi");
        NetworkCredential cred = new NetworkCredential("admin", "admin");


            
            req.KeepAlive = true;
            req.Method = "POST";
            req.Timeout = 3000;
            req.Credentials = cred;

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();


            try
            {
              
                WebResponse resp = req.GetResponse();
                // get response stream
                
                Stream stream = resp.GetResponseStream();
                // read data from stream

                while ((read = stream.Read(buffer, total, 1000)) != 0)
                {
                    total += read;
                }
                // get bitmap
                
                if (File.Exists(Application.StartupPath + "\\resim.jpg")) File.Delete(Application.StartupPath + "\\resim.jpg");
                FileStream fs = File.Create(Application.StartupPath + "\\resim.jpg");
                if (fs != null)
                {
                    fs.Write(buffer, 0, total);
                    fs.Close();
                }
                label1.Text = sw.ElapsedMilliseconds.ToString();

                Bitmap bmp = (Bitmap)Bitmap.FromStream(new MemoryStream(buffer, 0, total));                
                pictureBox1.Image = bmp;
                label1.Text += "\\" +  sw.ElapsedMilliseconds.ToString();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Grab Error:" + ex, "Error!!");
            }
}


qeek


wtrk

Alıntı yapılan: tunayk - 18 Şubat 2019, 13:53:19şu durumda asıl sorun IP kameradan resim almakta sanırım. Markadan markaya değişmekle beraber, http protokolünde doğrudan anlık resim ("snapshot") alabilirsiniz çoğu markada. Dahua markalı bir cihaz için C# dilinde aşağıdaki şekilde resim alabiliyoruz.  Resim aldıktan sonraki kısmı zaten usb tarafı ile aynı;
        private void button1_Click(object sender, EventArgs e)
        {

        byte[] buffer = new byte[2500000];
        int read, total = 0;
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://192.168.2.108/cgi-bin/snapshot.cgi");
        NetworkCredential cred = new NetworkCredential("admin", "admin");


            
            req.KeepAlive = true;
            req.Method = "POST";
            req.Timeout = 3000;
            req.Credentials = cred;

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();


            try
            {
              
                WebResponse resp = req.GetResponse();
                // get response stream
                
                Stream stream = resp.GetResponseStream();
                // read data from stream

                while ((read = stream.Read(buffer, total, 1000)) != 0)
                {
                    total += read;
                }
                // get bitmap
                
                if (File.Exists(Application.StartupPath + "\\resim.jpg")) File.Delete(Application.StartupPath + "\\resim.jpg");
                FileStream fs = File.Create(Application.StartupPath + "\\resim.jpg");
                if (fs != null)
                {
                    fs.Write(buffer, 0, total);
                    fs.Close();
                }
                label1.Text = sw.ElapsedMilliseconds.ToString();

                Bitmap bmp = (Bitmap)Bitmap.FromStream(new MemoryStream(buffer, 0, total));                
                pictureBox1.Image = bmp;
                label1.Text += "\\" +  sw.ElapsedMilliseconds.ToString();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Grab Error:" + ex, "Error!!");
            }
}




Aynen hocam sadece webcam yerine IP cameradan nasıl görüntü alabiliriz o konuda takılmıstıki elimizdeki kamera çin malı ancak kaliteli görüntüsü var bir deneyeyim kodları.
NoBody Can Stop Me!!!!!

wtrk

Alıntı yapılan: qeek - 18 Şubat 2019, 13:56:47Daha önce matlab ile uğraşırken buradaki sistem ile ip kamera okumuştum.
https://www.mathworks.com/help/supportpkg/ipcamera/ug/connect-to-ip-cameras.html

teşekkür ederim bunuda inceleyeceğim.
NoBody Can Stop Me!!!!!

wtrk

Arkadaşşlar açıkcası pek yapamadım birkaç deneme yapmama rağmen.

Bendeki kamera Haikon marka ve bunun http/cgi kodlarını filan bulmam gerekiyormuş, bu durumda nasıl ilerlemem gerekiyor ?
NoBody Can Stop Me!!!!!


wtrk

NoBody Can Stop Me!!!!!

OptimusPrime

https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

wtrk

Alıntı yapılan: OptimusPrime - 20 Şubat 2019, 07:52:23https://www.mathworks.com/help/supportpkg/ipcamera/ug/connect-to-ip-cameras.html

Mjpeg yapman gerekiyor çıkış formatını. Eger oluyorsa tabi.

Malesef olmadı, kamera ile normal web browser ve vlc ile görüntü alaibliyorum ancak, matlab'de grüntü almayı malesef başaramadım.
NoBody Can Stop Me!!!!!