public void FirstTime() { this.Dispatcher.Invoke(() => { if (stage == CaptureStage.Identify) { stage = CaptureStage.FirstTime; MainLabel.Text = "Eres nuevo"; Button1Label.Text = "Si"; Button1Label.Visibility = Visibility.Visible; Button1.Visibility = Visibility.Visible; Button2Label.Text = "No"; Button2Label.Visibility = Visibility.Visible; Button2.Visibility = Visibility.Visible; BottomPanel.Visibility = Visibility.Visible; BottomPanelText.Visibility = Visibility.Visible; BottomPanelText.Text = "Pienso que no te conozco. ¿Es la primera vez que te veo?"; BottomPanel.SetValue(Grid.RowProperty, 2); BottomPanelText.SetValue(Grid.RowProperty, 2); Button1Label.SetValue(Grid.RowProperty, 3); Button1.SetValue(Grid.RowProperty, 3); Button2Label.SetValue(Grid.RowProperty, 3); Button2.SetValue(Grid.RowProperty, 3); } }); }
private void PersonLeaveAnimation() { stage = CaptureStage.Idle; Button1Label.Text = "Empezar"; Button1Label.Visibility = Visibility.Collapsed; Button1.Visibility = Visibility.Collapsed; Button2Label.Text = "No"; Button2Label.Visibility = Visibility.Collapsed; Button2.Visibility = Visibility.Collapsed; BottomPanel.Visibility = Visibility.Collapsed; BottomPanelText.Visibility = Visibility.Collapsed; BottomPanelText.Text = "Ubícate para que tu cabeza se alinee con la imagen. Presiona continuar cuando hayas terminado."; SmallLabel.Text = "Levanta tu mano y presiona el boton para empezar."; SmallLabel.Visibility = Visibility.Collapsed; MainLabel.Text = "Hola!\n¿Ya me conoces?"; MainLabel.Visibility = Visibility.Visible; VideoCapture.Visibility = Visibility.Collapsed; TemplateImage.Visibility = Visibility.Collapsed; IdentityImage.Visibility = Visibility.Collapsed; ImgReference.Visibility = Visibility.Collapsed; ImgReferenceBG.Visibility = Visibility.Collapsed; BottomPanel.SetValue(Grid.RowProperty, 3); BottomPanelText.SetValue(Grid.RowProperty, 3); Button1Label.SetValue(Grid.RowProperty, 3); Button1.SetValue(Grid.RowProperty, 3); Button2Label.SetValue(Grid.RowProperty, 3); Button2.SetValue(Grid.RowProperty, 3); string[] fromGradient = { "#ffd52941", "#ffe45f42", "#ffee894c", "#fff6b061", "#fffcd581" }; string[] toGradient = { "#ff1f719b", "#ff238aad", "#ff33a3bc", "#ff4cbcc9", "#ff6bd5d3" }; UIAnimations.GradientAnimation(1.0, fromGradient, toGradient, BGCanvas); }
public void Matched(int subject) { this.Dispatcher.Invoke(() => { if (stage == CaptureStage.Identify) { stage = CaptureStage.Matched; IdentityImage.Source = capture.GetIdentityBitmap(subject, 0); IdentityImage.Visibility = Visibility.Visible; MainLabel.Visibility = Visibility.Collapsed; Button1Label.Text = "Si"; Button1Label.Visibility = Visibility.Visible; Button1.Visibility = Visibility.Visible; Button2Label.Text = "No"; Button2Label.Visibility = Visibility.Visible; Button2.Visibility = Visibility.Visible; BottomPanel.Visibility = Visibility.Visible; BottomPanelText.Visibility = Visibility.Visible; BottomPanelText.Text = "Pienso que ya te conozco. ¿Eres tu la persona de esta foto?"; BottomPanel.SetValue(Grid.RowProperty, 2); BottomPanelText.SetValue(Grid.RowProperty, 2); Button1Label.SetValue(Grid.RowProperty, 3); Button1.SetValue(Grid.RowProperty, 3); Button2Label.SetValue(Grid.RowProperty, 3); Button2.SetValue(Grid.RowProperty, 3); } }); }
private void NextCapture() { this.Dispatcher.Invoke(() => { if (currentCapture < 9) { CaptureData(currentCapture, false); } currentCapture += 1; if (currentCapture < 9 && stage == CaptureStage.RegisterCaptures) { ImgReference.Source = (ImageSource)FindResource("Ref_" + currentCapture); Task.Delay(3000).ContinueWith(t => NextCapture()); } else if (currentCapture == 9 && stage == CaptureStage.RegisterCaptures) { stage = CaptureStage.End; trainingUpdater.CheckForUpdate(); faceId.Process(subjectToProcess); VideoCapture.Visibility = Visibility.Collapsed; ImgReference.Visibility = Visibility.Collapsed; ImgReferenceBG.Visibility = Visibility.Collapsed; MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Muchas Gracias!"; BottomPanel.Visibility = Visibility.Visible; BottomPanelText.Visibility = Visibility.Visible; BottomPanelText.Text = "Regresa otro dia y te reconocere."; } }); }
public void EndTraining() { Dispatcher.Invoke(() => { stage = CaptureStage.Idle; MainLabel.Text = "Hola!\n¿Ya me conoces?"; }); }
public void StartTraining() { Dispatcher.Invoke(() => { stage = CaptureStage.Training; MainLabel.Text = "Training..."; }); faceId.Train(); }
private void PersonEnter() { if (!waitingToReturn && stage == CaptureStage.Idle) { stage = CaptureStage.Tracking; PersonEnterAnimation(); } waitingToReturn = false; }
public void AskToRegister() { stage = CaptureStage.Register; IdentityImage.Visibility = Visibility.Collapsed; MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Es un gusto conocerte"; BottomPanelText.Text = "¿Me permitirias guardar fotos de ti para poder recordarte?"; BottomPanel.Visibility = Visibility.Visible; BottomPanelText.Visibility = Visibility.Visible; }
private void PersonLeave() { if (stage == CaptureStage.End || stage == CaptureStage.Tracking) { stage = CaptureStage.Idle; waitingToReturn = false; PersonLeaveAnimation(); } else if (stage != CaptureStage.Idle) { waitingToReturn = true; Task.Delay(3500).ContinueWith(t => WaitToReturn()); } }
private void OnNoButton(object sender, RoutedEventArgs e) { if (stage == CaptureStage.Matched) { stage = CaptureStage.BadMatch; results.Mark(true, false); IdentityImage.Visibility = Visibility.Collapsed; MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Perdon por confundirte. ¿Es la primera vez que te veo?"; BottomPanel.Visibility = Visibility.Collapsed; BottomPanelText.Visibility = Visibility.Collapsed; Button1.SetValue(Grid.RowProperty, 3); Button1Label.SetValue(Grid.RowProperty, 3); Button2.SetValue(Grid.RowProperty, 3); Button2Label.SetValue(Grid.RowProperty, 3); } else if (stage == CaptureStage.Register) { stage = CaptureStage.End; MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Muchas gracias por visitarme!"; Button1Label.Visibility = Visibility.Collapsed; Button1.Visibility = Visibility.Collapsed; Button2Label.Visibility = Visibility.Collapsed; Button2.Visibility = Visibility.Collapsed; BottomPanel.Visibility = Visibility.Collapsed; BottomPanelText.Visibility = Visibility.Collapsed; } else if (stage == CaptureStage.FirstTime || stage == CaptureStage.BadMatch) { stage = CaptureStage.End; if (stage == CaptureStage.FirstTime) { results.Mark(false, false); } MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Lo siento :("; Button1Label.Visibility = Visibility.Collapsed; Button1.Visibility = Visibility.Collapsed; Button2Label.Visibility = Visibility.Collapsed; Button2.Visibility = Visibility.Collapsed; BottomPanel.Visibility = Visibility.Visible; BottomPanelText.Visibility = Visibility.Visible; BottomPanelText.Text = "Entrenare de nuevo para mejorar. Vuelve pronto!"; BottomPanel.SetValue(Grid.RowProperty, 3); BottomPanelText.SetValue(Grid.RowProperty, 3); } }
private void NextCapture() { this.Dispatcher.Invoke(() => { if (currentCapture < 9) { CaptureData(currentCapture); } currentCapture += 1; if (currentCapture < 9 && stage == CaptureStage.ImageCaptures) { ImgReference.Source = (ImageSource)FindResource("Ref_" + currentCapture); Task.Delay(3000).ContinueWith(t => NextCapture()); } else if (currentCapture == 9 && stage == CaptureStage.ImageCaptures) { stage = CaptureStage.AudioCapture; capture.StartAudioRecording("Name"); VideoCapture.Visibility = Visibility.Collapsed; ImgReference.Visibility = Visibility.Collapsed; ImgReferenceBG.Visibility = Visibility.Collapsed; MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Por favor di tu nombre."; MainLabel.VerticalAlignment = VerticalAlignment.Center; TimerAnimation(); Task.Delay(8000).ContinueWith(t => NextCapture()); } else if (currentCapture == 10 && stage == CaptureStage.AudioCapture) { capture.EndAudioRecording(); capture.StartAudioRecording("Email"); MainLabel.Text = "Di tu correo electrónico si deseas ser contactado con información y avances del proyecto."; TimerAnimation(); Task.Delay(8000).ContinueWith(t => NextCapture()); } else if (currentCapture == 11 && stage == CaptureStage.AudioCapture) { stage = CaptureStage.End; capture.EndAudioRecording(); ButtonLabel.Text = "Empezar"; SmallLabel.Text = "Levanta tu mano y presiona el boton para empezar."; MainLabel.Text = "Muchas gracias por tu participación!"; Timer.Visibility = Visibility.Collapsed; TimerBG.Visibility = Visibility.Collapsed; } }); }
void WaitToReturn() { if (waitingToReturn) { this.Dispatcher.Invoke(() => { if (stage == CaptureStage.ImageCaptures || stage == CaptureStage.AudioCapture || stage == CaptureStage.Demo) { capture.Incomplete(stage.ToString()); } stage = CaptureStage.Idle; waitingToReturn = false; PersonLeaveAnimation(); }); } }
private void OnStartButton(object sender, RoutedEventArgs e) { if (stage == CaptureStage.Tracking) { stage = CaptureStage.Agreement; ButtonLabel.Text = "Aceptar"; MainLabel.Text = "Vamos a tomar una serie de fotos que ayudaran a entrenar el algoritmo"; SmallLabel.Text = "Debes aceptar darnos permiso de usar las imágenes capturadas en el entrenamiento del algoritmo. \n * Estas imágenes no serán publicadas ni mostradas en ninguna parte."; } else if (stage == CaptureStage.Agreement) { stage = CaptureStage.Alignment; SmallLabel.Visibility = Visibility.Collapsed; StartButton.SetValue(Grid.RowProperty, 2); ButtonLabel.SetValue(Grid.RowProperty, 2); ButtonLabel.Text = "Continuar"; BottomPanel.Visibility = Visibility.Visible; BottomPanelText.Visibility = Visibility.Visible; VideoCapture.Visibility = Visibility.Visible; TemplateImage.Visibility = Visibility.Visible; MainLabel.Visibility = Visibility.Collapsed; } else if (stage == CaptureStage.Alignment) { stage = CaptureStage.Demo; capture.NewSubject(); CaptureData(0); currentCapture = 1; TemplateImage.Visibility = Visibility.Collapsed; BottomPanelText.Text = "Imagenes de guia apareceran en la pantalla, por cada una intenta imitar la orientación de la cabeza mostrada en la imagen. Presiona continuar para empezar las capturas."; ImgReference.Visibility = Visibility.Visible; ImgReferenceBG.Visibility = Visibility.Visible; DemoReel(); } else if (stage == CaptureStage.Demo) { stage = CaptureStage.ImageCaptures; StartButton.Visibility = Visibility.Collapsed; ButtonLabel.Visibility = Visibility.Collapsed; BottomPanel.Visibility = Visibility.Collapsed; BottomPanelText.Visibility = Visibility.Collapsed; ImgReference.Source = (ImageSource)FindResource("Ref_1"); Task.Delay(3000).ContinueWith(t => NextCapture()); } }
public static string Resolve(TaggedString taggedStr) { if ((string)taggedStr == null) { return(null); } string rawText = taggedStr.RawText; if (rawText.NullOrEmpty()) { return(rawText); } if (cache.TryGetValue(rawText, out var value)) { return(value); } resultBuffer.Length = 0; if (rawText.IndexOf("(*") < 0) { resultBuffer.Append(rawText); } else { for (int i = 0; i < rawText.Length; i++) { char c = rawText[i]; if (c == '(' && i < rawText.Length - 1 && rawText[i + 1] == '*' && rawText.IndexOf(')', i) > i + 1) { bool flag = false; int num = i; tagBuffer.Length = 0; argBuffer.Length = 0; capStage = CaptureStage.Tag; for (i += 2; i < rawText.Length; i++) { char c2 = rawText[i]; if (c2 == ')') { capStage = CaptureStage.Result; if (flag) { string value2 = rawText.Substring(num, i - num + 1).SwapTagWithColor(tagBuffer.ToString(), argBuffer.ToString()); resultBuffer.Append(value2); break; } } else if (c2 == '/') { flag = true; } if (capStage == CaptureStage.Arg) { argBuffer.Append(c2); } if (!flag && c2 == '=') { capStage = CaptureStage.Arg; } if (capStage == CaptureStage.Tag) { tagBuffer.Append(c2); } } if (!flag) { resultBuffer.Append(c); i = num + 1; } } else { resultBuffer.Append(c); } } } string input = resultBuffer.ToString(); input = CurrencyRegex.Replace(input, "$&".Colorize(CurrencyColor)); input = DaysRegex.Replace(input, "$&".Colorize(DateTimeColor)); input = HoursRegex.Replace(input, "$&".Colorize(DateTimeColor)); input = SecondsRegex.Replace(input, "$&".Colorize(DateTimeColor)); input = ColonistCountRegex.Replace(input, "$&".Colorize(ColonistCountColor)); cache.Add(rawText, input); return(input); }
private void OnStartButton(object sender, RoutedEventArgs e) { if (stage == CaptureStage.Tracking) { stage = CaptureStage.Capture; SmallLabel.Visibility = Visibility.Collapsed; Button1.SetValue(Grid.RowProperty, 2); Button1Label.SetValue(Grid.RowProperty, 2); Button1Label.Text = "Continuar"; BottomPanel.Visibility = Visibility.Visible; BottomPanelText.Visibility = Visibility.Visible; VideoCapture.Visibility = Visibility.Visible; TemplateImage.Visibility = Visibility.Visible; MainLabel.Visibility = Visibility.Collapsed; } else if (stage == CaptureStage.Capture) { stage = CaptureStage.Identify; MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Identificando..."; int sbj = capture.NewSubjectIdentify(); CaptureData(0, true); faceId.Identify(sbj); TemplateImage.Visibility = Visibility.Collapsed; VideoCapture.Visibility = Visibility.Collapsed; BottomPanel.Visibility = Visibility.Collapsed; BottomPanelText.Visibility = Visibility.Collapsed; Button1.Visibility = Visibility.Collapsed; Button1Label.Visibility = Visibility.Collapsed; } else if (stage == CaptureStage.Matched) { stage = CaptureStage.End; results.Mark(true, true); IdentityImage.Visibility = Visibility.Collapsed; MainLabel.Visibility = Visibility.Visible; MainLabel.Text = "Genial!"; Button1Label.Visibility = Visibility.Collapsed; Button1.Visibility = Visibility.Collapsed; Button2Label.Visibility = Visibility.Collapsed; Button2.Visibility = Visibility.Collapsed; BottomPanelText.Text = "Me alegra volver a verte. Muchas gracias por ayudarme a aprender."; } else if (stage == CaptureStage.BadMatch) { AskToRegister(); } else if (stage == CaptureStage.FirstTime) { results.Mark(false, true); AskToRegister(); } else if (stage == CaptureStage.Register) { stage = CaptureStage.Demo; MainLabel.Visibility = Visibility.Collapsed; TemplateImage.Visibility = Visibility.Collapsed; BottomPanelText.Text = "Imagenes de guia apareceran en la pantalla, por cada una intenta imitar la orientación de la cabeza mostrada en la imagen. Presiona continuar para empezar las capturas."; ImgReference.Visibility = Visibility.Visible; ImgReferenceBG.Visibility = Visibility.Visible; Button2.Visibility = Visibility.Collapsed; Button2Label.Visibility = Visibility.Collapsed; BottomPanel.SetValue(Grid.RowProperty, 3); BottomPanelText.SetValue(Grid.RowProperty, 3); Button1Label.SetValue(Grid.RowProperty, 2); Button1.SetValue(Grid.RowProperty, 2); Button2Label.SetValue(Grid.RowProperty, 2); Button2.SetValue(Grid.RowProperty, 2); VideoCapture.Visibility = Visibility.Visible; TemplateImage.Visibility = Visibility.Visible; DemoReel(); } else if (stage == CaptureStage.Demo) { stage = CaptureStage.RegisterCaptures; subjectToProcess = capture.NewSubjectRegistry(); CaptureData(0, false); currentCapture = 1; Button1.Visibility = Visibility.Collapsed; Button1Label.Visibility = Visibility.Collapsed; BottomPanel.Visibility = Visibility.Collapsed; BottomPanelText.Visibility = Visibility.Collapsed; TemplateImage.Visibility = Visibility.Collapsed; ImgReference.Source = (ImageSource)FindResource("Ref_1"); Task.Delay(3000).ContinueWith(t => NextCapture()); } }