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);
        }
Example #2
0
        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();
 }
Example #4
0
        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);
 }
Example #6
0
        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);
 }