public TrackablePoint(TrackingContext context, TrackerParameters trackerParameters, PointF value) { this.context = context; this.trackerParameters = trackerParameters; this.currentValue = value; this.nonTrackingValue = value; }
private void PushTrackerParameters(Size block, Size search) { TrackerParameters old = track.TrackerParameters; track.TrackerParameters = new TrackerParameters(old.SimilarityThreshold, old.TemplateUpdateThreshold, old.RefinementNeighborhood, search, block, old.ResetOnMove);; viewportController.Refresh(); }
public TrackablePoint(XmlReader r, PointF scale, TimestampMapper timeMapper) { r.ReadStartElement(); while (r.NodeType == XmlNodeType.Element) { switch (r.Name) { case "TrackerParameters": trackerParameters = TrackerParameters.ReadXml(r, scale); break; case "NonTrackingValue": nonTrackingValue = XmlHelper.ParsePointF(r.ReadElementContentAsString()); nonTrackingValue = nonTrackingValue.Scale(scale.X, scale.Y); break; case "CurrentValue": currentValue = XmlHelper.ParsePointF(r.ReadElementContentAsString()); currentValue = currentValue.Scale(scale.X, scale.Y); break; case "Timeline": ParseTimeline(r, scale, timeMapper); break; default: string unparsed = r.ReadOuterXml(); break; } } r.ReadEndElement(); }
private void Track_TrackerParametersChanged(object sender, EventArgs e) { // Remember these track parameters to bootstrap the next trackable. DrawingTrack track = sender as DrawingTrack; if (track == null) { return; } lastUsedTrackerParameters = track.TrackerParameters; }
private void SetParameters(TrackerParameters parameters) { similarityTreshold = parameters.SimilarityThreshold; templateUpdateThreshold = parameters.TemplateUpdateThreshold; refinementNeighborhood = parameters.RefinementNeighborhood; searchWindow = parameters.SearchWindow; blockWindow = parameters.BlockWindow; if (!blockWindow.FitsIn(searchWindow)) { searchWindow = blockWindow; } }
public void Add(ITrackable drawing, VideoFrame videoFrame) { if (trackers.ContainsKey(drawing.Id)) { return; } TrackingProfile profile = drawing.CustomTrackingProfile ?? PreferencesManager.PlayerPreferences.TrackingProfile; TrackerParameters parameters = new TrackerParameters(profile, imageSize); TrackingContext context = new TrackingContext(videoFrame.Timestamp, videoFrame.Image); trackers.Add(drawing.Id, new DrawingTracker(drawing, context, parameters)); }
public void AddPoint(ITrackable drawing, VideoFrame videoFrame, string key, PointF point) { if (!trackers.ContainsKey(drawing.Id)) { return; } TrackingProfile profile = drawing.CustomTrackingProfile ?? PreferencesManager.PlayerPreferences.TrackingProfile; TrackerParameters parameters = new TrackerParameters(profile, imageSize); TrackingContext context = new TrackingContext(videoFrame.Timestamp, videoFrame.Image); trackers[drawing.Id].AddPoint(context, parameters, key, point); }
public DrawingTracker(ITrackable drawing, TrackingContext context, TrackerParameters parameters) { this.drawing = drawing; this.drawingId = drawing.Id; this.parameters = parameters; foreach (KeyValuePair <string, PointF> pair in drawing.GetTrackablePoints()) { trackablePoints.Add(pair.Key, new TrackablePoint(context, parameters, pair.Value)); } drawing.TrackablePointMoved += drawing_TrackablePointMoved; assigned = true; }
public static TrackerParameters ReadXml(XmlReader r, PointF scale) { TrackingProfile classic = new TrackingProfile(); double similarityThreshold = classic.SimilarityThreshold; double updateThreshold = classic.TemplateUpdateThreshold; int refinementNeighborhood = classic.RefinementNeighborhood; Size searchWindow = classic.SearchWindow; Size blockWindow = classic.BlockWindow; r.ReadStartElement(); while (r.NodeType == XmlNodeType.Element) { switch (r.Name) { case "SimilarityThreshold": similarityThreshold = r.ReadElementContentAsDouble(); break; case "TemplateUpdateThreshold": updateThreshold = r.ReadElementContentAsDouble(); break; case "RefinementNeighborhood": refinementNeighborhood = r.ReadElementContentAsInt(); break; case "SearchWindow": searchWindow = XmlHelper.ParseSize(r.ReadElementContentAsString()); searchWindow = new SizeF(searchWindow.Width * scale.X, searchWindow.Height * scale.Y).ToSize(); break; case "BlockWindow": blockWindow = XmlHelper.ParseSize(r.ReadElementContentAsString()); blockWindow = new SizeF(blockWindow.Width * scale.X, blockWindow.Height * scale.Y).ToSize(); break; default: string outerXml = r.ReadOuterXml(); break; } } r.ReadEndElement(); TrackerParameters parameters = new TrackerParameters(similarityThreshold, updateThreshold, refinementNeighborhood, searchWindow, blockWindow, false); return(parameters); }
public TrackerBlock2(TrackerParameters parameters) { this.parameters = parameters; SetParameters(parameters); }
public void AddPoint(TrackingContext context, TrackerParameters parameters, string key, PointF value) { // Some drawings like polyline have a dynamic list of trackable points. trackablePoints.Add(key, new TrackablePoint(context, parameters, value)); }