public void SelectTracker(TrackerType tracker_type)
 {
     if (tracker_type == TrackerType.Boosting)
     {
         monotracker = TrackerBoosting.create();
     }
     if (tracker_type == TrackerType.MIL)
     {
         monotracker = TrackerMIL.create();
     }
     if (tracker_type == TrackerType.KCF)
     {
         monotracker = TrackerKCF.create();
     }
     if (tracker_type == TrackerType.TLD)
     {
         monotracker = TrackerTLD.create();
     }
     if (tracker_type == TrackerType.MedianFlow)
     {
         monotracker = TrackerMedianFlow.create();
     }
     if (tracker_type == TrackerType.CSRT)
     {
         monotracker = TrackerCSRT.create();
     }
     if (tracker_type == TrackerType.MOSSE)
     {
         monotracker = TrackerMOSSE.create();
     }
 }
Exemple #2
0
        static void Main(string[] args)
        {
            var capture = new VideoCapture(@"G:\videodata\char 5s.mp4");
            var win     = new Window("capture");
            var mat     = new Mat();
            var tracker = TrackerCSRT.Create();
            var bbox    = new Rect();
            var bboxes  = new Rect[] { };

            capture.Read(mat);

            bbox = Cv2.SelectROI("capture", mat);
            //bboxes = Cv2.SelectROIs("capture", mat);

            //for(int i = 0; i < bboxes.Length; i++)
            //{
            //    Console.WriteLine(bboxes[i]);
            //}

            //var mt = MultiTracker.Create();
            Console.WriteLine(bbox);

            var bbox2d = new Rect2d(bbox.X, bbox.Y, bbox.Width, bbox.Height);


            //rect2d to rect

            tracker.Init(mat, bbox2d);



            while (true)
            {
                capture.Read(mat);
                // 読み込めるフレームがなくなったら終了
                if (mat.Empty())
                {
                    break;
                }

                tracker.Update(mat, ref bbox2d);

                Cv2.Rectangle(mat, bbox2d.ToRect(), new Scalar(0, 255, 0));

                //for (int i = 0; i < bboxes.Length; i++)
                //{
                //    Cv2.Rectangle(mat, bbox2d.ToRect(), new Scalar(0, 255, 0));
                //}

                Console.WriteLine(bbox2d);

                win.ShowImage(mat);



                Cv2.WaitKey(33);
            }

            Console.ReadKey();
        }
Exemple #3
0
 public void Update()
 {
     using (var tracker = TrackerCSRT.Create())
     {
         UpdateBase(tracker);
     }
 }
Exemple #4
0
 public void Init()
 {
     using (var tracker = TrackerCSRT.Create())
     {
         InitBase(tracker);
     }
 }
 public TrackedObject(Rect position, ObjectClass @class, Mat image)
 {
     _position = position;
     Class     = @class;
     Id        = Interlocked.Increment(ref _idCounter);
     Tracker   = TrackerCSRT.Create();
     Tracker.Init(image, position);
 }
Exemple #6
0
        protected override Tracker CreateTracker()
        {
            TrackerCSRT tracker = TrackerCSRT.create();

            if (tracker == null)
            {
                throw new ArgumentNullException(nameof(tracker));
            }
            return(tracker);
        }
    // Start is called before the first frame update
    void Start()
    {
        capture = new VideoCapture(0);
        Image <Bgr, Byte> initialFrame = capture.QueryFrame().ToImage <Bgr, Byte>();

        tracker  = new TrackerCSRT();
        RawImage = GetComponent <RawImage>();

        // Drawing inital handBox
        float midX = (initialFrame.Width / 2);
        float midY = (initialFrame.Height / 2);

        handBox = new Rectangle((int)midX - 100, (int)midY - 100, 200, 200);

        initialFrame.Draw(handBox, new Bgr(System.Drawing.Color.Green), 3);
        texture          = TextureConvert.ImageToTexture2D <Bgr, Byte>(initialFrame, FlipType.Vertical);
        RawImage.texture = texture;
    }