private void SetTrackObject(Image <Bgr, byte> image) { if (_trackStatus == TrackStatus.None) { return; } CamShiftTracking trackObj = null; Rectangle rect = Rectangle.Empty; if (_trackStatus == TrackStatus.Left) { rect = _drawRectL; } else { rect = _drawRectR; } trackObj = new CamShiftTracking(image, rect); if (_trackStatus == TrackStatus.Left) { SetTrackAndRect(ref _trackingObjL, ref _drawRectL, trackObj, Rectangle.Empty); } else { SetTrackAndRect(ref _trackingObjR, ref _drawRectR, trackObj, Rectangle.Empty); } _trackStatus = TrackStatus.None; }
private void SetTrackAndRect(ref CamShiftTracking tracking, ref Rectangle rect, CamShiftTracking targetTracking, Rectangle targetRect) { if (tracking != null) { tracking.Dispose(); } tracking = targetTracking; rect = targetRect; }