Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 计算机视觉应用中的blobtracketo跟踪人_Opencv_Computer Vision_Emgucv - Fatal编程技术网

Opencv 计算机视觉应用中的blobtracketo跟踪人

Opencv 计算机视觉应用中的blobtracketo跟踪人,opencv,computer-vision,emgucv,Opencv,Computer Vision,Emgucv,我目前正在尝试开发一个系统,使用EmguCV(OpenCV包装器)跟踪队列中的人。我首先运行并理解了我下载的Emgu包中的视频监控示例。以下是我基于示例的代码: private static void processVideo(string fileName) { Capture capture = new Capture(fileName); MCvFont font = new MCvFont(Emgu.CV.CvEnum.FONT.CV_FO

我目前正在尝试开发一个系统,使用EmguCV(OpenCV包装器)跟踪队列中的人。我首先运行并理解了我下载的Emgu包中的视频监控示例。以下是我基于示例的代码:

    private static void processVideo(string fileName)
    {
        Capture capture = new Capture(fileName);
        MCvFont font = new MCvFont(Emgu.CV.CvEnum.FONT.CV_FONT_HERSHEY_SIMPLEX, 
            1.0, 1.0);
        BlobTrackerAuto<Bgr> tracker = new BlobTrackerAuto<Bgr>();

        //I'm using a class that I implemented for foreground segmentation
        MyForegroundExtractor fgExtractor = new MyForegroundExtractor();

        Image<Bgr, Byte> frame = vVideo.QueryFrame();
        fgExtractor.initialize(frame);

        while (frame != null)
        {
            Image<Gray, Byte> foreground = fgExtractor.getForegroundImg(frame);
            tracker.Process(frame, foreground);

            foreach (MCvBlob blob in tracker)
            {
                if (isPersonSize(blob))
                {
                    frame.Draw((Rectangle)blob, new Bgr(0, 0, 255), 3);
                    frame.Draw(blob.ID.ToString(), ref font, 
                        Point.Round(blob.Center), new Bgr(255.0, 255.0, 255.0));
                }
            }
            CvInvoke.cvShowImage("window", frame);
            CvInvoke.cvWaitKey(1);

            frame = capture.QueryFrame();
        }
    }
我添加了if语句,因为程序执行非常慢。但当我做到这一点时,我能够跟踪那些我以前无法跟踪的人

总而言之,如果更习惯OpenCV/EmguCV的人帮助我说这是否是跟踪使用BlobTracketo的人的好方法,并帮助我解决上述问题,我将不胜感激。我觉得我没有利用EmguCV提供给我的工具

if (i % 3 == 0)
    tracker.Process(frame, foreground);