private void StartRealSense() { bool useHead = bool.Parse(ConfigurationManager.AppSettings["UseHead"]); // Instantiate and initialize the SenseManager senseManager = PXCMSenseManager.CreateInstance(); // Configure the Hand Module if (useHead) { senseManager.EnableFace(); face = senseManager.QueryFace(); faceConfig = face.CreateActiveConfiguration(); faceConfig.detection.isEnabled = true; faceConfig.QueryExpressions().Enable(); faceConfig.ApplyChanges(); } else { // Enable cursor tracking senseManager.EnableHand(); // Get an instance of the hand cursor module hand = senseManager.QueryHand(); // Get an instance of the cursor configuration var cursorConfig = hand.CreateActiveConfiguration(); // Make configuration changes and apply them cursorConfig.DisableAllAlerts(); cursorConfig.EnableTrackedJoints(true); cursorConfig.EnableStabilizer(true); cursorConfig.ApplyChanges(); } senseManager.Init(); // Create an instance of PXCMSmoother senseManager.session.CreateImpl <PXCMSmoother>(out smoother); smoother2D = smoother.Create2DQuadratic(.5F); smoother2D2 = smoother.Create2DQuadratic(1); // Start the worker thread processingThread = new Thread(new ThreadStart(ProcessingThread)); processingThread.Start(); }
private void CreateSmootherType(SmoothingTypes type, float factor, out PXCMSmoother.Smoother2D smoother) { switch (type) { case SmoothingTypes.Quadratic: smoother = _smoother.Create2DQuadratic(factor); break; case SmoothingTypes.Stabilizer: smoother = _smoother.Create2DStabilizer(7, factor); break; case SmoothingTypes.Weighted: smoother = _smoother.Create2DWeighted((int)factor); break; case SmoothingTypes.Spring: default: smoother = _smoother.Create2DSpring(factor); break; } }
private bool InitializeRealSense() { pxcmStatus status; senseManager = PXCMSenseManager.CreateInstance(); if (senseManager == null) { Debug.LogError("Unable to create SenseManager."); return false; } status = senseManager.EnableFace(); if (status != pxcmStatus.PXCM_STATUS_NO_ERROR) { Debug.LogError("Couldn't enable the Face Module."); return false; } faceModule = senseManager.QueryFace(); if (faceModule == null) { Debug.LogError("Couldn't query the Face Module."); return false; } PXCMFaceConfiguration faceConfiguration = faceModule.CreateActiveConfiguration(); if (faceConfiguration == null) { Debug.LogError("Couldn't create an active configuration."); return false; } faceConfiguration.pose.isEnabled = true; faceConfiguration.pose.maxTrackedFaces = 1; PXCMFaceConfiguration.ExpressionsConfiguration expressionsConfiguration = faceConfiguration.QueryExpressions(); expressionsConfiguration.Enable(); status = expressionsConfiguration.EnableExpression(JumpExpression); if (status != pxcmStatus.PXCM_STATUS_NO_ERROR) { Debug.LogError("Unable to enable the expression " + JumpExpression + "."); return false; } status = expressionsConfiguration.EnableExpression(FireExpression); if (status != pxcmStatus.PXCM_STATUS_NO_ERROR) { Debug.LogError("Unable to enable the expression " + FireExpression + "."); return false; } status = faceConfiguration.ApplyChanges(); if (status != pxcmStatus.PXCM_STATUS_NO_ERROR) { Debug.LogError("Unable to apply configuration settings."); return false; } faceData = faceModule.CreateOutput(); if (faceData == null) { Debug.LogError("Couldn't create the data output object."); return false; } status = senseManager.Init(); if (status != pxcmStatus.PXCM_STATUS_NO_ERROR) { Debug.LogError("Unable to initialize SenseManager."); return false; } PXCMSession session = senseManager.QuerySession(); PXCMSmoother smoother; status = session.CreateImpl<PXCMSmoother>(out smoother); if (status != pxcmStatus.PXCM_STATUS_NO_ERROR) { Debug.LogError("Failed to create the smoother."); return false; } smoother2D = smoother.Create2DWeighted(10); return true; }