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(); } }
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(); }
public void Update() { using (var tracker = TrackerCSRT.Create()) { UpdateBase(tracker); } }
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); }
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; }