/// <summary> /// Calibration is finished, starting PenTracker /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void StartTracking(object sender, EventArgs e) { var mCtor = _mapperType.GetConstructor(new Type[] { typeof(Grid) }); _mapper = (AbstractPointMapper)mCtor.Invoke(new Grid[] { CalibratorGrid }); Console.WriteLine("Calbration completed"); _penTracker.Start(); if (CalibrationComplete != null) { CalibrationComplete(this, null); } }
/// <summary> /// Calibration is finished, starting PenTracker /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void StartTracking(object sender, EventArgs e) { Console.WriteLine("Calibration completed"); _qtc = new QuadrilateralTransformationCamera(CalibratorGrid.TopLeft, CalibratorGrid.TopRight, CalibratorGrid.BottomLeft, CalibratorGrid.BottomRight, 4.0 / 3.0); _qtc.Height = TransformHeight; _qtc.Width = TransformWidth; _provider.FrameReady += ForwardImages; #if DEBUG _qtc.FrameReady += StoreTransformedImage; #endif // Initialize Pen Tracking Tools _penTracker = new AForgePenTracker(new WhiteLedStrategy(), _qtc); _penTracker.PenFound += PenFound; _penTracker.Start(); //_calibrator.Grid.PredictFromCorners(); }
/// <summary> /// Calibration is finished, starting PenTracker /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void StartTracking(object sender, EventArgs e) { //_pictureProvider.ShowConfigurationDialog(); //_pictureProvider.FrameReady += _camera_FrameReady; // TODO siehe _camera_FrameReady //_calibrator.Grid.Calculate(); var mCtor = _mapperType.GetConstructor(new Type[] { typeof(Grid) }); _mapper = (AbstractPointMapper)mCtor.Invoke(new Grid[] { CalibratorGrid }); //_mapper = (AbstractPointMapper)Activator.CreateInstance(_mapperType, // BindingFlags.CreateInstance, null, new Grid[] { CalibratorGrid }); //if (_mapperType.Equals(typeof(LinearMapper))) // check for runtimeType //{ // ((LinearMapper)_mapper).Calculate(); //} #if DEBUG var bm = new Bitmap(640, 480); var sw = new Stopwatch(); //for (int i = CalibratorGrid.TopLeft.X; i < CalibratorGrid.BottomRight.X; i++) //sw.Start(); //try //{ // for (int i = 0; i < 640; i++) // { // Debug.WriteLine(i); // for (int j = 0; j < 480; j++) // //for (int j = CalibratorGrid.TopLeft.Y; j < CalibratorGrid.BottomRight.Y; j++) // { // //Debug.WriteLineIf(i == 639,j); // if (CalibratorGrid.Contains(new Point(i, j))) // { // var position = _mapper.FromPresentation(i, j); // if (position.X >= 0 && position.Y >= 0) // bm.SetPixel(i, j, // Color.FromArgb(255, (position.Y + 8192) % 160, //(position.Y + 8192)%160, 255)); // (position.Y + 4096) % 256, 255)); // } // } // } // sw.Stop(); //} //catch (Exception ex) //{ // Debug.WriteLine(ex.Message); //} if (_mapperType.Equals(typeof(FineBarycentricMapper))) //check for runntimeType { var fbc = (FineBarycentricMapper)_mapper; var sum = 0.0; using ( var fs = new StreamWriter(new FileStream(@"C:\Temp\aforge\perf.csv", FileMode.Append, FileAccess.Write))) { foreach (var i in fbc.NeighbourUsedCount) { fs.Write(i + ","); Console.Write(i + ", "); sum += i; } fs.WriteLine(); fs.Flush(); } Console.WriteLine("Average time per interpolation: " + ((double)sw.ElapsedMilliseconds / sum) + "ms"); } bm.Save(@"C:\temp\daforge\grid.bmp", ImageFormat.MemoryBmp); #endif Console.WriteLine("Calbration completed"); _penTracker.Start(); //_calibrator.Grid.PredictFromCorners(); }