void SetUpKinect() { this.context = new XnMOpenNIContext(); this.context.Init(); this.session = new XnMSessionManager(context, "Wave", "RaiseHand"); this.session.SessionStarted += new EventHandler <PointEventArgs>(session_SessionStarted); this.session.SessionEnded += new EventHandler(session_SessionEnded); bool steadyBeforeSwipe = true; var swipeDetector = new XnMSwipeDetector(steadyBeforeSwipe); swipeDetector.MotionSpeedThreshold = 0.5f; swipeDetector.MotionTime = 300; swipeDetector.SteadyDuration = 300; swipeDetector.GeneralSwipe += new EventHandler <SwipeDetectorGeneralEventArgs>(swipeDetector_GeneralSwipe); this.session.AddListener(swipeDetector); var start = new ThreadStart(RunKinect); var thread = new Thread(start); thread.Start(); }
/// <summary> /// Registers gestures to be tracked by the Kinect /// </summary> static void RegisterGestures() { double hBound = 5; double vBound = 6; Double.TryParse(ConfigurationManager.AppSettings["horBound"], out hBound); Double.TryParse(ConfigurationManager.AppSettings["verBound"], out vBound); leftBoundary = -(double)hBound * (300.00 / (double)7); // Left treshold needed for swipe rightBoundary = -leftBoundary; // Right treshold needed for swipe topBoundary = (double)vBound * (200.00 / (double)7); //Top treshold botBoundary = -topBoundary; //Bottom treshold double actHeight = 0; Double.TryParse(ConfigurationManager.AppSettings["kinectHeight"], out actHeight); adjustedHeight = actHeight - baseKinectHeight; XnMPointDenoiser pointFilter = new XnMPointDenoiser(); XnMPointControl pointControl = new XnMPointControl(); pointControl.PointUpdate += new EventHandler <PointBasedEventArgs>(control_PointUpdate); pointFilter.PointCreate += new EventHandler <PointBasedEventArgs>(control_PointCreate); XnMSwipeDetector swipeDetector = new XnMSwipeDetector(true); swipeDetector.MotionSpeedThreshold = 0.8f; swipeDetector.MotionTime = 180; //350 swipeDetector.SteadyDuration = 150; //200 swipeDetector.SwipeRight += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeRight); swipeDetector.SwipeLeft += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeLeft); swipeDetector.SwipeDown += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeDown); swipeDetector.SwipeUp += new EventHandler <SwipeDetectorEventArgs>(swipeDetector_SwipeUp); XnMSteadyDetector steadyDetector = new XnMSteadyDetector(); steadyDetector.DetectionDuration = 800; steadyDetector.Steady += new EventHandler <SteadyEventArgs>(steadyDetector_Steady); //XnMPushDetector pushDetector = new XnMPushDetector(); //pushDetector.Push += new EventHandler<PushDetectorEventArgs>(pushDetector_Push); XnMBroadcaster broadcaster = new XnMBroadcaster(); pointFilter.AddListener(pointControl); broadcaster.AddListener(pointFilter); broadcaster.AddListener(swipeDetector); broadcaster.AddListener(steadyDetector); //broadcaster.AddListener(steadyDetector); HorSwipeStarted = VertSwipeStarted = true; sessionManager.AddListener(broadcaster); }
public static void Run() { Initializing = true; Trace.WriteLine("Initializing Kinect..."); XnMOpenNIContext context = new XnMOpenNIContext(); try { context.Init(); KinectExists = true; Trace.WriteLine("Kinect exists"); } catch (XnMException) { Initializing = false; Active = false; KinectExists = false; return; } // Kinect session Trace.WriteLine("Creating session manager..."); sessionManager = new XnMSessionManager(context, "Wave", "RaiseHand"); sessionManager.SessionStarted += new EventHandler <PointEventArgs>(sessionManager_SessionStarted); sessionManager.SessionEnded += new EventHandler(sessionManager_SessionEnded); // hand tracking filter Trace.WriteLine("Creating filters..."); var pointManager = new KinectPointManager(); sessionManager.AddListener(pointManager); var swipeDetector = new XnMSwipeDetector(true); swipeDetector.GeneralSwipe += new EventHandler <SwipeDetectorGeneralEventArgs>(swipeDetector_GeneralSwipe); swipeDetector.MotionSpeedThreshold = .7f; swipeDetector.MotionTime = 300; sessionManager.AddListener(swipeDetector); Initializing = false; Trace.WriteLine("Kinect initialized"); // infinite loop until app shutdown while (!ShutDown) { context.Update(); sessionManager.Update(context); } }
/// <summary> /// Registers gestures to be tracked by the Kinect /// </summary> static void RegisterGestures() { double hBound = 5; double vBound = 6; Double.TryParse(ConfigurationManager.AppSettings["horBound"], out hBound); Double.TryParse(ConfigurationManager.AppSettings["verBound"], out vBound); leftBoundary = -(double)hBound * (300.00 / (double)7); // Left treshold needed for swipe rightBoundary = -leftBoundary; // Right treshold needed for swipe topBoundary = (double)vBound * (200.00 / (double)7); //Top treshold botBoundary = -topBoundary; //Bottom treshold double actHeight = 0; Double.TryParse(ConfigurationManager.AppSettings["kinectHeight"], out actHeight); adjustedHeight = actHeight - baseKinectHeight; XnMPointDenoiser pointFilter = new XnMPointDenoiser(); XnMPointControl pointControl = new XnMPointControl(); pointControl.PointUpdate += new EventHandler<PointBasedEventArgs>(control_PointUpdate); pointFilter.PointCreate += new EventHandler<PointBasedEventArgs>(control_PointCreate); XnMSwipeDetector swipeDetector = new XnMSwipeDetector(true); swipeDetector.MotionSpeedThreshold = 0.8f; swipeDetector.MotionTime = 180; //350 swipeDetector.SteadyDuration = 150; //200 swipeDetector.SwipeRight += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeRight); swipeDetector.SwipeLeft += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeLeft); swipeDetector.SwipeDown += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeDown); swipeDetector.SwipeUp += new EventHandler<SwipeDetectorEventArgs>(swipeDetector_SwipeUp); XnMSteadyDetector steadyDetector = new XnMSteadyDetector(); steadyDetector.DetectionDuration = 800; steadyDetector.Steady += new EventHandler<SteadyEventArgs>(steadyDetector_Steady); //XnMPushDetector pushDetector = new XnMPushDetector(); //pushDetector.Push += new EventHandler<PushDetectorEventArgs>(pushDetector_Push); XnMBroadcaster broadcaster = new XnMBroadcaster(); pointFilter.AddListener(pointControl); broadcaster.AddListener(pointFilter); broadcaster.AddListener(swipeDetector); broadcaster.AddListener(steadyDetector); //broadcaster.AddListener(steadyDetector); HorSwipeStarted = VertSwipeStarted = true; sessionManager.AddListener(broadcaster); }
public void IniciarKinect() { Debug.WriteLine("Iniciando acceso a Kinect ..."); //Instancia o contexto do Kinect para Iniciar Operação context = new XnMOpenNIContext(); //Inicia Kinect context.Init(); neverStarted = true; //SessionManager configurado para quando você sacudir a mão ele iniciar //Wave seria o movimento de tchau //E RaiseHand é só erguer a mão... //Os eventos serão disparador com o foco na mão, ou seja, se perder o foco vai ter que fazer o RaiseHand novamente sessionManager = new XnMSessionManager(context, "Wave", "RaiseHand"); swipeDetector = new XnMSwipeDetector(true); swipeDetector.MotionTime = 600; swipeDetector.SteadyDuration = 10; //200 uint swipeDetector.SteadyMaxVelocity = 1f; //0.01 float swipeDetector.XAngleThreshold = 25.00f; //25.0 float swipeDetector.YAngleThreshold = 25.00f; //20.0 float swipeDetector.GeneralSwipe += OnGeneralSwipe; sessionManager.AddListener(swipeDetector); //O evento é disparado quando for feito o tchauzinho sessionManager.SessionStarted += SessionManagerSessionStarted; //Thread Necessária thread = new Thread(mainLoop); thread.Start(); //Mensagem de Inicio Debug.WriteLine("Kinect configurado. Fazer saudação para iniciar Sessao"); Debug.WriteLine(""); }
void SetUpKinect() { this.context = new XnMOpenNIContext(); this.context.Init(); this.session = new XnMSessionManager(context, "Wave", "RaiseHand"); this.session.SessionStarted += new EventHandler<PointEventArgs>(session_SessionStarted); this.session.SessionEnded += new EventHandler(session_SessionEnded); bool steadyBeforeSwipe = true; var swipeDetector = new XnMSwipeDetector(steadyBeforeSwipe); swipeDetector.MotionSpeedThreshold = 0.5f; swipeDetector.MotionTime = 300; swipeDetector.SteadyDuration = 300; swipeDetector.GeneralSwipe += new EventHandler<SwipeDetectorGeneralEventArgs>(swipeDetector_GeneralSwipe); this.session.AddListener(swipeDetector); var start = new ThreadStart(RunKinect); var thread = new Thread(start); thread.Start(); }
public void Init() { context = new XnMOpenNIContext(); context.Init(); sessionManager = new XnMSessionManager(context, "Click,Wave", "RaiseHand"); sessionManager.SessionStarted += new EventHandler<PointEventArgs>(sessionManager_SessionStarted); sessionManager.SessionEnded += new EventHandler(sessionManager_SessionEnded); //slider2D = new XnMSelectableSlider2D(xItems, yItems); //slider2D.Activate += new EventHandler(slider2D_Activate); //slider2D.Deactivate += new EventHandler(slider2D_Deactivate); //slider2D.ValueChanged += new EventHandler<SelectableSlider2DValueChangedEventArgs>(slider2D_ValueChanged); //slider2D.MessageUpdate += new EventHandler<OneMessageEventArgs>(slider2D_MessageUpdate); //slider2D.ItemHovered += new EventHandler<SelectableSlider2DHoverEventArgs>(slider2D_ItemHovered); //slider2D.ItemSelected += new EventHandler<SelectableSlider2DSelectEventArgs>(slider2D_ItemSelected); //pointDenoiser = new XnMPointDenoiser(); //pointDenoiser.AddListener(slider2D); //flowRouter = new XnMFlowRouter(); //flowRouter.SetActiveControl(pointDenoiser); circleDetector = new XnMCircleDetector(); circleDetector.Circle += new EventHandler<CircleEventArgs>(circleDetector_Circle); pushDetector = new XnMPushDetector(); pushDetector.Push += new EventHandler<PushDetectorEventArgs>(pushDetector_Push); swipeDetector = new XnMSwipeDetector(true); swipeDetector.GeneralSwipe += new EventHandler<SwipeDetectorGeneralEventArgs>(swipeDetector_GeneralSwipe); steadyDetector = new XnMSteadyDetector(5, 5000); steadyDetector.Activate += new EventHandler(steadyDetector_Activate); steadyDetector.Deactivate += new EventHandler(steadyDetector_Deactivate); steadyDetector.Steady += new EventHandler<SteadyEventArgs>(steadyDetector_Steady); //sessionManager.AddListener(flowRouter); sessionManager.AddListener(circleDetector); sessionManager.AddListener(pushDetector); sessionManager.AddListener(swipeDetector); sessionManager.AddListener(steadyDetector); Thread th = new Thread(new ThreadStart(SpinInfinite)); th.Priority = ThreadPriority.Lowest; th.Start(); }
public static void Run() { Initializing = true; Trace.WriteLine("Initializing Kinect..."); XnMOpenNIContext context = new XnMOpenNIContext(); try { context.Init(); KinectExists = true; Trace.WriteLine("Kinect exists"); } catch (XnMException) { Initializing = false; Active = false; KinectExists = false; return; } // Kinect session Trace.WriteLine("Creating session manager..."); sessionManager = new XnMSessionManager(context, "Wave", "RaiseHand"); sessionManager.SessionStarted += new EventHandler<PointEventArgs>(sessionManager_SessionStarted); sessionManager.SessionEnded += new EventHandler(sessionManager_SessionEnded); // hand tracking filter Trace.WriteLine("Creating filters..."); var pointManager = new KinectPointManager(); sessionManager.AddListener(pointManager); var swipeDetector = new XnMSwipeDetector(true); swipeDetector.GeneralSwipe += new EventHandler<SwipeDetectorGeneralEventArgs>(swipeDetector_GeneralSwipe); swipeDetector.MotionSpeedThreshold = .7f; swipeDetector.MotionTime = 300; sessionManager.AddListener(swipeDetector); Initializing = false; Trace.WriteLine("Kinect initialized"); // infinite loop until app shutdown while (!ShutDown) { context.Update(); sessionManager.Update(context); } }