public KinectFaceTracker(FSDKFacePipeline facePipeline, IKinect kinect, CancellationTokenSource cts) { _kinect = kinect; FacePipeline = facePipeline; _cancellationTokenSource = cts; _coordinateMapper = _kinect.CoordinateMapper; }
public static void InitializeLibrary() { while (true) { try { FSDKFacePipeline.InitializeLibrary(); return; } catch (ApplicationException e) { var result = MessageBox.Show(e.Message + Environment.NewLine + "Do you wish to enter a new key?", "Face library activation failed!", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { var inputKeyForm = new InputNameForm("FaceSDK Key", "Enter new FSDK key"); result = inputKeyForm.ShowDialog(); if (result == DialogResult.OK) { FsdkSettings.Default.FsdkActivationKey = inputKeyForm.UserName; FsdkSettings.Default.Save(); } } else { return; } } } }
public FormMain() { var kinect = KinectInitializeHelper.InitializeKinect(); if (kinect == null) { Environment.Exit(1); } InitializeComponent(); var faceDatabase = new DictionaryFaceDatabase <byte[]>(new FSDKFaceInfo()); _databaseHelper = new DatabaseHelper <byte[]>(faceDatabase); var cts = new CancellationTokenSource(); var facePipeline = new FSDKFacePipeline(faceDatabase, TaskScheduler.Default, cts.Token); if (KinectTrackedAppSettings.Default.RenderFace) { facePipeline.FaceCuttingComplete += FacePipelineOnFaceCuttingComplete; } if (FsdkSettings.Default.FsdkDetectFeatures || FsdkSettings.Default.FsdkDetectExpression) { facePipeline.FacialFeatureDetectionComplete += FacePipelineOnFeatureDetection; } if (KinectTrackedAppSettings.Default.RenderMatch) { facePipeline.TemplateProcessingComplete += FacePipelineOnTemplateProcessingComplete; } FsdkInitializeHelper.InitializeLibrary(); _kinectFrameWidth = kinect.ColorFrameStream.FrameHeight; _kinectFrameHeight = kinect.ColorFrameStream.FrameWidth; _coordinateMapper = kinect.CoordinateMapper; _kft = new KinectFaceTracker(facePipeline, kinect, cts); _kft.FrameArrived += KftOnFrameArrived; _kft.FacePipeline.FacialFeatureDetectionComplete += FacePipelineOnFeatureDetection; _kft.Start(); _imageHeight = mainPictureBox.Height; _imageWidth = mainPictureBox.Width; startStopToolStripMenuItem.Text = _programState == ProgramState.Running ? "Stop (Space)" : "Start (Space)"; _renderer = new Renderer(_kinectFrameHeight, _kinectFrameWidth); }