String status2string(FaceModelBuilderCollectionStatus collection) { String status = String.Empty; if ((collection & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) { status = "Need : Tilted Up Views"; } else if ((collection & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) { status = "Need : Right Views"; } else if ((collection & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0) { status = "Need : Left Views"; } else if ((collection & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) { status = "Need : Front View Frames"; } else if ((collection & FaceModelBuilderCollectionStatus.MoreFramesNeeded) != 0) { status = "Need : More Frames"; } return(status); }
/// <summary> /// This event is fired when the FaceModelBuilder collection status has changed /// </summary> /// <param name="sender">object sending the event</param> /// <param name="e">event arguments</param> private void FaceModelBuilder_CollectionStatusChanged(object sender, CollectionStatusChangedEventArgs e) { var modelBuilder = sender as FaceModelBuilder; FaceModelBuilderCollectionStatus newStatus = modelBuilder.CollectionStatus; //Query the latest status this.currentCollectionStatusString = BuildCollectionStatusText(newStatus); }
/// <summary> /// Gets the current collection status /// </summary> /// <param name="status">Status value</param> /// <returns>Status value as text</returns> private void GetCollectionStatus(FaceModelBuilderCollectionStatus status) { bool frontCaptured, leftCaptured, rightCaptured, tiltedCaptured; Log.LogMessageSameLine((int)status); if ((int)status == 1) { frontCaptured = leftCaptured = rightCaptured = tiltedCaptured = false; } else { if ((status & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) { frontCaptured = false; } else { frontCaptured = true; } if ((status & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0) { leftCaptured = false; } else { leftCaptured = true; } if ((status & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) { rightCaptured = false; } else { rightCaptured = true; } if ((status & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) { tiltedCaptured = false; } else { tiltedCaptured = true; } } if (OnAskIfCaptured != null) { OnAskIfCaptured(frontCaptured, rightCaptured, leftCaptured, tiltedCaptured, false); } }
/// <summary> /// Initializes a new instance of the KinectFaceTrackingResult class from a set of Kinect face points /// </summary> public KinectFaceTrackingResult(FaceModel faceModel, FaceModel constructedFaceModel, FaceModelBuilderCollectionStatus builderStatus, FaceAlignment faceAlignment, CoordinateMapper mapper) { this.FaceModel = faceModel; this.ConstructedFaceModel = constructedFaceModel; this.BuilderStatus = builderStatus; this.FaceAlignment = faceAlignment; var vertices = faceModel.CalculateVerticesForAlignment(faceAlignment); this.ColorSpaceFacePoints = this.FaceBoundaryPoints(vertices, mapper); // Calculate facerect manually from facepoints var rectX = this.ColorSpaceFacePoints.Min(x => x.X); var rectWidth = this.ColorSpaceFacePoints.Max(x => x.X) - rectX; var rectY = this.ColorSpaceFacePoints.Min(x => x.Y); var rectHeight = this.ColorSpaceFacePoints.Max(x => x.Y) - rectY; this.FaceRect = new System.Drawing.Rectangle(rectX, rectY, rectWidth, rectHeight); }
private static string GetCollectionStatusText(FaceModelBuilderCollectionStatus status) { string res = string.Empty; if ((status & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) { res = "FrontViewFramesNeeded"; return(res); } if ((status & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0) { res = "LeftViewsNeeded"; return(res); } if ((status & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) { res = "RightViewsNeeded"; return(res); } if ((status & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) { res = "TiltedUpViewsNeeded"; return(res); } if ((status & FaceModelBuilderCollectionStatus.Complete) != 0) { res = "Complete"; return(res); } if ((status & FaceModelBuilderCollectionStatus.MoreFramesNeeded) != 0) { res = "TiltedUpViewsNeeded"; return(res); } return(res); }
/// <summary> /// FaceModelBuilderのCollectionStatusを取得します /// </summary> private string GetCollectionStatus(FaceModelBuilderCollectionStatus status) { var msgs = new List <string>(); if ((status & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) { msgs.Add("FrontViewFramesNeeded"); } if ((status & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0) { msgs.Add("LeftViewsNeeded"); } if ((status & FaceModelBuilderCollectionStatus.MoreFramesNeeded) != 0) { msgs.Add("MoreFramesNeeded"); } if ((status & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) { msgs.Add("RightViewsNeeded"); } if ((status & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) { msgs.Add("TiltedUpViewsNeeded"); } if ((status & FaceModelBuilderCollectionStatus.Complete) != 0) { msgs.Add("Complete!"); } return(string.Join(" / ", msgs)); }
/// <summary> /// Build a string from the collection status bit flag combinations (simplified) /// </summary> /// <param name="status">Status value</param> /// <returns>Status value as text</returns> private string BuildCollectionStatusText(FaceModelBuilderCollectionStatus status) { string res = String.Empty; if (FaceModelBuilderCollectionStatus.Complete == status) { return(" Done "); } if ((status & FaceModelBuilderCollectionStatus.MoreFramesNeeded) != 0) { res += " More "; } if ((status & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) { res += " Front"; } if ((status & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0) { res += " Left "; } if ((status & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) { res += " Right"; } if ((status & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) { res += " Up "; } return(res); }
/// <summary> /// Gets the current collection status /// </summary> /// <param name="status">Status value</param> /// <returns>Status value as text</returns> private void GetCollectionStatus(FaceModelBuilderCollectionStatus status) { bool frontCaptured, leftCaptured, rightCaptured, tiltedCaptured; Log.LogMessageSameLine((int)status); if ((int)status == 1) { frontCaptured = leftCaptured = rightCaptured = tiltedCaptured = false; } else { if ((status & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) { frontCaptured = false; } else { frontCaptured = true; } if ((status & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0) { leftCaptured = false; } else { leftCaptured = true; } if ((status & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) { rightCaptured = false; } else { rightCaptured = true; } if ((status & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) { tiltedCaptured = false; } else { tiltedCaptured = true; } } if (OnAskIfCaptured != null) OnAskIfCaptured(frontCaptured, rightCaptured, leftCaptured, tiltedCaptured, false); }
String status2string( FaceModelBuilderCollectionStatus collection ) { String status = String.Empty; if ( (collection & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0 ) { status = "Need : Tilted Up Views"; } else if ( (collection & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0 ) { status = "Need : Right Views"; } else if ( (collection & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0 ) { status = "Need : Left Views"; } else if ( (collection & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0 ) { status = "Need : Front View Frames"; } else if ( (collection & FaceModelBuilderCollectionStatus.MoreFramesNeeded) != 0 ) { status = "Need : More Frames"; } return status; }
/// <summary> /// FaceModelBuilderのCollectionStatusを取得します /// </summary> private string GetCollectionStatus(FaceModelBuilderCollectionStatus status) { var msgs = new List<string>(); if ((status & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) msgs.Add("FrontViewFramesNeeded"); if ((status & FaceModelBuilderCollectionStatus.LeftViewsNeeded)!= 0) msgs.Add("LeftViewsNeeded"); if ((status & FaceModelBuilderCollectionStatus.MoreFramesNeeded) != 0) msgs.Add("MoreFramesNeeded"); if ((status & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) msgs.Add("RightViewsNeeded"); if ((status & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) msgs.Add("TiltedUpViewsNeeded"); if ((status & FaceModelBuilderCollectionStatus.Complete) != 0) msgs.Add("Complete!"); return string.Join(" / ", msgs); }
/// <summary> /// Gets the current collection status /// </summary> /// <param name="status">Status value</param> /// <returns>Status value as text</returns> private static string GetCollectionStatusText(FaceModelBuilderCollectionStatus status) { string res = string.Empty; if ((status & FaceModelBuilderCollectionStatus.FrontViewFramesNeeded) != 0) { res = "FrontViewFramesNeeded"; return res; } if ((status & FaceModelBuilderCollectionStatus.LeftViewsNeeded) != 0) { res = "LeftViewsNeeded"; return res; } if ((status & FaceModelBuilderCollectionStatus.RightViewsNeeded) != 0) { res = "RightViewsNeeded"; return res; } if ((status & FaceModelBuilderCollectionStatus.TiltedUpViewsNeeded) != 0) { res = "TiltedUpViewsNeeded"; return res; } if ((status & FaceModelBuilderCollectionStatus.Complete) != 0) { res = "Complete"; return res; } if ((status & FaceModelBuilderCollectionStatus.MoreFramesNeeded) != 0) { res = "TiltedUpViewsNeeded-More"; return res; } return res; }