public override void Init(Size[] imageSizes) { Clean(); _flowflags |= CMSConstants.CV_LKFLOW_PYR_A_READY; validTrackPoints = false; _pwinsz = new CvSize(10, 10); _status = new byte[NumberOfTrackingPoints]; imageSize.Width = imageSizes[0].Width; imageSize.Height = imageSizes[0].Height; _last_track_points = new CvPoint2D32f[NumberOfTrackingPoints]; _current_track_points = new CvPoint2D32f[NumberOfTrackingPoints]; _criteria = new CvTermCriteria(CMSConstants.CV_TERMCRIT_ITER | CMSConstants.CV_TERMCRIT_EPS, 20, 0.03); _curFrame = CvImageWrapper.CreateImage(imageSize, PixelDepth, PixelColorChannels); _grey = CvImageWrapper.CreateImage(imageSize, PixelDepth, PixelChannels); _prev_grey = CvImageWrapper.CreateImage(imageSize, PixelDepth, PixelChannels); _pyramid = CvImageWrapper.CreateImage(imageSize, PixelDepth, PixelChannels); _prev_pyramid = CvImageWrapper.CreateImage(imageSize, PixelDepth, PixelChannels); _swap_temp = CvImageWrapper.CreateImage(imageSize, PixelDepth, PixelChannels); eyeLocator = new EyeLocator(EyeLocationImageCount); eyeLocator.Reset(); eyeImagePoints = new PointF[2]; CMSTrackingSuiteAdapter.SendMessage(InitMessage); }
public void StateChange(CMSState state) { lock (mutex) { if (state.Equals(CMSState.Tracking) || state.Equals(CMSState.ControlTracking)) { CMSTrackingSuiteAdapter.SendMessage(""); } if (trackingModule != null) { trackingModule.State = state; trackingModule.StateChange(state); } if (mouseControlModule != null) { mouseControlModule.State = state; mouseControlModule.StateChange(state); } if (clickControlModule != null) { clickControlModule.State = state; clickControlModule.StateChange(state); } } }
public NccBlinkDetector(bool leftEye, CMSTrackingSuiteAdapter cmsTrackingSuiteAdapter) { templateMutex = new object(); boxPen = new Pen(Color.Red, 2); initializationNccScores = new float[InitializationImageCount, InitializationImageCount]; initializationTemplates = new FastBitmap.NccTemplate[InitializationImageCount]; this.leftEye = leftEye; xDistanceBetweenEyesSet = false; refinedSearchIndices = new int[RefinedSearchCount]; initialSearchTemplates = null; refinedSearchTemplates = null; this.cmsTrackingSuiteAdapter = cmsTrackingSuiteAdapter; SetStepAmount(); Restart(); }
public override void Init(Size[] imageSizes) { eyeLocator = new EyeLocator(3); eyeLocator.Reset(); eyeLocatorTickCount = Environment.TickCount; lastClickPoint = Point.Empty; int imageWidth = imageSizes[0].Width; int imageHeight = imageSizes[0].Height; lock (mutex) { CleanStandard(); InitStandard(imageWidth, imageHeight); } CMSTrackingSuiteAdapter.SendMessage(CMSConstants.PLEASE_CLICK_TF); }
public EyeClicker(CMSTrackingSuiteAdapter cmsTrackingSuiteAdapter, BlinkLinkEyeClickData blinkLinkEyeClickData) { workerUpdateDataMutex = new object(); eyeStatusWindow = (EyeStatusWindow)cmsTrackingSuiteAdapter.CreateForm(typeof(EyeStatusWindow)); eyeClickerResetOnly = false; timer = new Stopwatch(); this.blinkLinkEyeClickData = blinkLinkEyeClickData; this.cmsTrackingSuiteAdapter = cmsTrackingSuiteAdapter; leftEyeBlinkDetector = new NccBlinkDetector(true, cmsTrackingSuiteAdapter); rightEyeBlinkDetector = new NccBlinkDetector(false, cmsTrackingSuiteAdapter); stageTime = 0; firstUpdate = true; currentStage = Stages.Start; waitHandler = new AutoResetEvent(false); updateDataMutex = new object(); updateData = null; xDistanceBetweenEyesSet = false; workerThread = new Thread(new ThreadStart(workerThreadMain)); workerThread.Priority = ThreadPriority.Highest; workerThread.Start(); clickerFSM = new EyeClickerFiniteStateMachine(blinkLinkEyeClickData, eyeStatusWindow); }
public override void Init(Size [] imageSizes) { Clean(); int imageWidth = imageSizes[0].Width; int imageHeight = imageSizes[0].Height; eyeLocator = new EyeLocator(3); eyeLocator.Reset(); eyeLocatorTickCount = Environment.TickCount; _flowflags |= CMSConstants.CV_LKFLOW_PYR_A_READY; validTrackPoint = false; _pwinsz = new CvSize(10, 10); _status = new byte[1]; imageSize.Width = imageWidth; imageSize.Height = imageHeight; _last_track_points = new CvPoint2D32f[1]; _current_track_points = new CvPoint2D32f[1]; _criteria = new CvTermCriteria(CMSConstants.CV_TERMCRIT_ITER | CMSConstants.CV_TERMCRIT_EPS, 20, 0.03); _curFrame = CvImageWrapper.CreateImage(imageSize, PIXEL_DEPTH, PIXEL_COLOR_CHANNELS); _grey = CvImageWrapper.CreateImage(imageSize, PIXEL_DEPTH, PIXEL_CHANNELS); _prev_grey = CvImageWrapper.CreateImage(imageSize, PIXEL_DEPTH, PIXEL_CHANNELS); _pyramid = CvImageWrapper.CreateImage(imageSize, PIXEL_DEPTH, PIXEL_CHANNELS); _prev_pyramid = CvImageWrapper.CreateImage(imageSize, PIXEL_DEPTH, PIXEL_CHANNELS); _swap_temp = CvImageWrapper.CreateImage(imageSize, PIXEL_DEPTH, PIXEL_CHANNELS); CMSTrackingSuiteAdapter.SendMessage(CMSConstants.PLEASE_CLICK_TF); }
public override void Init(System.Drawing.Size [] sizes) { CMSTrackingSuiteAdapter.SendMessage(CMSConstants.EMPTY_TRACKING_SUITE_MESSAGE); }