2016-04-18 1 views
2

Когда я пытаюсь запустить VideoSurveilance приложения на Raspberry Pi2.The Применение похмелья х, я последовал за шагами по этой ссылке EmguCv Download and Installation StepsVideoSurveilance Применение whichs была предоставлена ​​Emgucv пачке Висит на Raspberry Pi2

есть какие-либо библиотеки DLL я был отсутствующие другие примеры работают нормально.

Вот мой код для отслеживания двоичных объектов

using (CvTracks tracks = new CvTracks()) 
using (ImageViewer viewer = new ImageViewer()) 
using (Capture capture = new Capture()) 
using (Mat fgMask = new Mat()) 
{ 
    //BGStatModel<Bgr> bgModel = new BGStatModel<Bgr>(capture.QueryFrame(), Emgu.CV.CvEnum.BG_STAT_TYPE.GAUSSIAN_BG_MODEL); 
    BackgroundSubtractorMOG2 bgModel = new BackgroundSubtractorMOG2(0, 0, true); 
    //BackgroundSubstractorMOG bgModel = new BackgroundSubstractorMOG(0, 0, 0, 0); 

    capture.ImageGrabbed += delegate(object sender, EventArgs e) 
    { 
     Mat frame = new Mat(); 
     capture.Retrieve(frame); 
     bgModel.Apply(frame, fgMask); 

     using (CvBlobDetector detector = new CvBlobDetector()) 
     using (CvBlobs blobs = new CvBlobs()) 
      { 
       detector.Detect(fgMask.ToImage<Gray, Byte>(), blobs); 
       blobs.FilterByArea(100, int.MaxValue); 

       tracks.Update(blobs, 20.0, 10, 0); 

       Image<Bgr, Byte> result = new Image<Bgr, byte>(frame.Size); 

       using (Image<Gray, Byte> blobMask = detector.DrawBlobsMask(blobs)) 
       { 
        frame.CopyTo(result, blobMask); 
       } 
       //CvInvoke.cvCopy(frame, result, blobMask); 

       foreach (KeyValuePair<uint, CvTrack> pair in tracks) 
       { 
        if (pair.Value.Inactive == 0) //only draw the active tracks. 
        { 
        CvBlob b = blobs[pair.Value.BlobLabel]; 
        Bgr color = detector.MeanColor(b, frame.ToImage<Bgr, Byte>()); 
         result.Draw(pair.Key.ToString(), pair.Value.BoundingBox.Location, Emgu.CV.CvEnum.FontFace.HersheySimplex, 0.5, color); 
         result.Draw(pair.Value.BoundingBox, color, 2); 
         Point[] contour = b.GetContour(); 
         result.Draw(contour, new Bgr(0, 0, 255), 1); 
         } 
       } 

      viewer.Image = frame.ToImage<Bgr, Byte>().ConcateVertical(fgMask.ToImage<Bgr, Byte>().ConcateHorizontal(result)); 
      } 
     }; 
     capture.Start(); 
     viewer.ShowDialog(); 
    } 
+0

Добавить сведения об исключении. – Gusman

+0

@gusman Iam не получает никакого исключения, он просто запускает приложение и сам там висит .. :(:( –

+0

Все ли зависание устройства или просто ваше приложение? Что делать, если вы попробуете другое устройство PI? приложение, чтобы увидеть, где оно висит? Получает ли он capture.start()? – PeterS

ответ

1

Я не знаком с проектом, однако читать ваш вопрос и перебирая ноты ссылки вы предоставили и их main/home page; они упоминают и продолжают ссылаться на малину Pi 2, тогда как вы упомянули только о малине.

Это тонкая разница, но может быть ограничением в архитектуре ARM6, ОЗУ или другом. Если вы находитесь на Pi2, тогда вы можете игнорировать, но если вы находитесь на чем-то предшественнике Pi2, вам может потребоваться обратиться к другим областям, чтобы сделать его совместимым. Вот если это вообще поддерживается.

+0

Да, я работаю над малиной pi 2. –

0

Еще одна вещь, которая может вызвать «зависание» в этой точке - отсутствие свободного места на карте.

Я хотел бы попробовать это первая: Expand root filesystem
http://elinux.org/RPi_Resize_Flash_Partitions

Чтобы узнать, сколько места осталось:

df -h/

 Смежные вопросы

  • Нет связанных вопросов^_^