/// <summary> /// Constructor /// </summary> public RealStreamer(Helpers.UpdateStatisticsDelegate onUpdateStatistics) : base(onUpdateStatistics) { //Get camera device and set configuration _capture = GetCamera(); SetCameraConfiguration(); }
/// <summary> /// Constructor /// </summary> /// <param name="streamer">Streamer to get video stream from</param> /// <param name="onUpdateMarkup">On Update Markup function delegate</param> /// <param name="onUpdateStatistics">On Update Statics function delegate</param> public AbstractImageProcessingUnit(Publisher <Frame> streamer, Helpers.UpdateMarkupCircleDelegate onUpdateMarkup, Helpers.UpdateStatisticsDelegate onUpdateStatistics) : base(streamer) { _publisher = streamer; UpdateMarkup = onUpdateMarkup; UpdateStatistics = onUpdateStatistics; }
public DemoStreamer(Helpers.UpdateStatisticsDelegate onUpdateStatistics) : base(onUpdateStatistics) { //you can use if you want FrameWidth = 1280; // Configuration.Attributes.GetValue<int>("FrameWidth"); FrameHeight = 755; // Configuration.Attributes.GetValue<int>("FrameHeight"); FrameRate = Configuration.Attributes.GetValue <int>("FrameRate"); }
/// <summary> /// Constructor /// </summary> /// <param name="callibrator">Calibrator Unit Instance</param> /// <param name="streamer">Streamer Unit Instance</param> /// <param name="onUpdateMarkup">Update Markup Delegate</param> /// <param name="onUpdateStatistics">Update Statistics Delegate</param> public Tracker(CalibrationUnit callibrator, Publisher <Frame> streamer, Helpers.UpdateMarkupCircleDelegate onUpdateMarkup, Helpers.UpdateStatisticsDelegate onUpdateStatistics) : base(onUpdateMarkup, onUpdateStatistics) { _calibrator = callibrator; _streamer = streamer; }
/// <summary> /// Constructor /// </summary> /// <param name="onUpdateStatistics">Update statistics delegate function</param> public DetectionStatisticAnalyzer(Helpers.UpdateStatisticsDelegate onUpdateStatistics) { UpdateStatistics = onUpdateStatistics; _currenWorkingSecond = DateTime.Now; }
/// <summary> /// Constructor /// </summary> public Streamer(Helpers.UpdateStatisticsDelegate onUpdateStatistics) { UpdateStatistics = onUpdateStatistics; }
/// <summary> /// Callibration Unit Constructor /// </summary> /// <param name="onUpdateMarkup">Delegate for updating markups</param> /// <param name="onUpdateStatistics">Delegate for updating statistics</param> public CalibrationUnit(Helpers.UpdateMarkupCircleDelegate onUpdateMarkup, Helpers.UpdateStatisticsDelegate onUpdateStatistics) : base(onUpdateMarkup, onUpdateStatistics) { }
/// <summary> /// Demo Image Processing Unit constructor /// </summary> /// <param name="streamer">DemoStreamer instance</param> /// <param name="onUpdateMarkup">On Update Markup delegate</param> /// <param name="onUpdateStatistics">On Update Statistics delegate</param> public DemoImageProcessingUnit(DemoStreamer streamer, Helpers.UpdateMarkupCircleDelegate onUpdateMarkup, Helpers.UpdateStatisticsDelegate onUpdateStatistics) : base(streamer, onUpdateMarkup, onUpdateStatistics) { //Set Foosbot world sizes - axe X x axe Y _rightBorder = Configuration.Attributes.GetValue <double>(Configuration.Names.FOOSBOT_AXE_X_SIZE); _buttomBorder = Configuration.Attributes.GetValue <double>(Configuration.Names.FOOSBOT_AXE_Y_SIZE); //Create Transfomation Matrix - to present coordinates of a Ball in GUI InitializeTransformation(Convert.ToSingle(streamer.FrameWidth), Convert.ToSingle(streamer.FrameHeight), Convert.ToSingle(_rightBorder), Convert.ToSingle(_buttomBorder)); //Set this Demo Image Processing Unit as observer for Demo Streamer streamer.DemoImageProcessingUnit = this; //Create Ball Location Publisher for Observers _coordinatesUpdater = new DemoLastBallCoordinatesUpdater(); BallLocationPublisher = new BallLocationPublisher(_coordinatesUpdater); //Set borders of frame to include ball radius _rightBorder -= _ballRadius; _buttomBorder -= _ballRadius; _leftBorder += _ballRadius; _upeerBorder += _ballRadius; //Set start ball coordinates _x = Convert.ToInt32(_rightBorder / 2); _y = Convert.ToInt32(_buttomBorder / 2); //Instantiate random generator _random = new Random(); //Start Generating Locations in separate Thread BeginInvokeGenerateLocation(); }
/// <summary> /// Constructor /// </summary> /// <param name="onUpdateMarkup">On update markup method delegate</param> /// <param name="onUpdateStatistics">On update statistics method delegate</param> public Detector(Helpers.UpdateMarkupCircleDelegate onUpdateMarkup, Helpers.UpdateStatisticsDelegate onUpdateStatistics) { UpdateMarkup = onUpdateMarkup; UpdateStatistics = onUpdateStatistics; }
/// <summary> /// Image Processing Unit Constructor /// </summary> /// <param name="streamer">Video streamer to get frames from</param> /// <param name="onUpdateMarkup">Update markup function delegate</param> /// <param name="onUpdateStatistics">Update statistics delegate</param> public ImageProcessingUnit(Publisher <Frame> streamer, Helpers.UpdateMarkupCircleDelegate onUpdateMarkup, Helpers.UpdateStatisticsDelegate onUpdateStatistics) : base(streamer, onUpdateMarkup, onUpdateStatistics) { _calibrator = new CalibrationUnit(UpdateMarkup, UpdateStatistics); _ballTracker = new Tracker(_calibrator, _publisher, UpdateMarkup, UpdateStatistics); BallLocationPublisher = new BallLocationPublisher(_ballTracker); _lastFrameTimeStamp = DateTime.Now; _detectionAnalyzer = new DetectionStatisticAnalyzer(onUpdateStatistics); }