//void Loading(bool mostrar) //{ // indicator.IsEnabled = mostrar; // indicator.IsRunning = mostrar; //} async void btnCrearEmpresa_Clicked(object sender, EventArgs e) { var nombreEmpresa = txtNombreEmpresa.Text; var nombreArea = txtArea.Text; var descripcion = txtDescripcion.Text; if (string.IsNullOrEmpty(nombreEmpresa)) { await DisplayAlert("Incorrecto", "Digite nombre de Empresa", "OK"); } else if (string.IsNullOrEmpty(nombreArea)) { await DisplayAlert("Incorrecto", "Digite nombre de Area", "OK"); } else if (await ServicioFace.CrearGrupoEmpleados(nombreEmpresa, nombreArea, descripcion)) { await DisplayAlert("Correcto", "Empresa creada correctamente", "OK"); await Navigation.PushAsync(new PaginaRegistro()); } else { await DisplayAlert("Error", "Error al crear empresa", "OK"); } }
public async Task AnalizarImagen(IDialogContext context, LuisResult result) { var stream = await GetImageStream(Usuario.FotoURL); var emocion = await ServicioFace.ObtenerEmocion(stream); await context.PostAsync($"**{Usuario.Nombre}** tu emoción es **{emocion.Nombre}** (Score: {emocion.Score})"); }
async void BtnRegistrar_Clicked(object sender, EventArgs e) { if (foto1 != null && foto2 != null && foto3 != null) { bool op = false; try { Loading(true); var nombre = txtNombre.Text; var personID = await ServicioFace.RegistrarPersonaEnGrupo(nombre); //servicio remotamente await ServicioFace.RegistrarRostro(personID, foto1.GetStream()); await ServicioFace.RegistrarRostro(personID, foto2.GetStream()); await ServicioFace.RegistrarRostro(personID, foto3.GetStream()); var usuario = new Usuario() { Key = personID.ToString(), Nombre = nombre, EmocionActual = "", FotoActual = "", ScoreActual = 0 }; //alamcenamiento localmente op = await new ServicioBaseDatos().RegistrarUsuario(usuario); } catch (Exception) { } finally { if (op) { await DisplayAlert("Correcto", "Empleado registrado correctamente", "OK"); await Navigation.PopAsync(); } else { await DisplayAlert("Error", "Error al registrar el empleado", "OK"); } Loading(false); } } else { await DisplayAlert("Error", "Debes tomar 3 fotografías al empleado", "OK"); } }
async void btnEntrenar_Clicked(object sender, EventArgs e) { if (await ServicioFace.EntrenarGrupoEmpleados()) { await DisplayAlert("Correcto", "Grupo entrenado exitosamente", "OK"); } else { await DisplayAlert("Error", "Error al crear el grupo", "OK"); } }
async void btnLogin_Clicked(object sender, EventArgs e) { try { Loading(true); var foto = await ServicioImagen.TomarFoto(); if (foto != null) { imagen.Source = ImageSource.FromStream(foto.GetStream); var faceId = await ServicioFace.DetectarRostro(foto.GetStream()); var personId = await ServicioFace.IdentificarEmpleado(faceId); if (personId != Guid.Empty) { var bd = new ServicioBaseDatos(); var usuario = await bd.ObtenerUsuario(personId.ToString()); usuario.FotoActual = foto.Path; var emocion = await ServicioFace.ObtenerEmocion(foto); usuario.EmocionActual = emocion.Nombre; usuario.ScoreActual = emocion.Score; var update = await bd.ActualizarUsuario(usuario); await DisplayAlert("Correcto", $"Bienvenido {usuario.Nombre}", "OK"); await Navigation.PushAsync(new PaginaBienvenido(usuario)); } else { await DisplayAlert("Error", "Persona no identificada", "OK"); } } else { await DisplayAlert("Error", "No se pudo tomar la fotografía.", "OK"); } } catch (Exception ex) { } finally { Loading(false); } }
async void btnAnalizar_Clicked(object sender, EventArgs e) { try { Loading(true); var emocion = await ServicioFace.ObtenerEmocion(foto); this.emocion.Foto = emocion.Foto; this.emocion.Nombre = emocion.Nombre; this.emocion.Score = emocion.Score; lblEmocion.Text = emocion.Resultado; } catch (Exception ex) { } finally { Loading(false); } }
private async Task SolicitarImagen(IDialogContext context, IAwaitable <IEnumerable <Attachment> > result) { var imagen = await result; if (imagen.Count() > 0) { alumno.FotoURL = imagen.First().ContentUrl; await context.PostAsync($"Imagen recibida."); var stream = await GetImageStream(alumno.FotoURL); var emocion = await ServicioFace.ObtenerEmocion(stream); await context.PostAsync($"**{alumno.Nombre}** tu emoción es **{emocion.Nombre}** (Score: {emocion.Score})"); } else { await context.PostAsync("Error. Fotografía no detectada"); } }
async void Camera.IPictureCallback.OnPictureTaken(byte[] data, Android.Hardware.Camera camera) { File pictureFile = getOutputMediaFile(); if (pictureFile == null) { return; } try { FileOutputStream fos = new FileOutputStream(pictureFile); fos.Write(data); fos.Close(); ExifInterface ei = new ExifInterface(pictureFile.AbsolutePath); var orientation = (Android.Media.Orientation)ei.GetAttributeInt(ExifInterface.TagOrientation, (int)Android.Media.Orientation.Undefined); Android.Graphics.Bitmap rotatedBitmap = null; Android.Graphics.Bitmap bitmap = LoadFromFile(pictureFile.AbsolutePath); switch (orientation) { case Android.Media.Orientation.Rotate90: rotatedBitmap = rotateImage(bitmap, 0); break; case Android.Media.Orientation.Rotate180: rotatedBitmap = rotateImage(bitmap, 90); break; case Android.Media.Orientation.Rotate270: rotatedBitmap = rotateImage(bitmap, 180); break; case Android.Media.Orientation.Normal: default: rotatedBitmap = rotateImage(bitmap, 270); break; } var data2 = bitmaptoByte(rotatedBitmap); FileOutputStream fos2 = new FileOutputStream(pictureFile); fos2.Write(data2); fos2.Close(); var rostro = await ServicioFace.DetectarRostro(data2); var descripcion = await ServicioVision.DescribirImagen(data2); if (rostro != null) { RunOnUiThread(async() => { var frente = ImageAnalyzer.AnalizarPostura(rostro); TextView txtFrente = FindViewById <TextView>(Resource.Id.txtFrente); TextView txtAnalisisFrente = FindViewById <TextView>(Resource.Id.txtAnalisisFrente); txtFrente.Text = frente.ToString("N2"); if (frente > Constantes.LookingAwayAngleThreshold) { txtFrente.SetTextColor(Android.Graphics.Color.Red); txtAnalisisFrente.SetTextColor(Android.Graphics.Color.Red); txtAnalisisFrente.Text = "No estás mirando al frente"; await PlayAlarm(); } else { txtFrente.SetTextColor(Android.Graphics.Color.Green); txtAnalisisFrente.SetTextColor(Android.Graphics.Color.Green); txtAnalisisFrente.Text = "OK"; } var boca = ImageAnalyzer.AnalizarBoca(rostro); TextView txtBoca = FindViewById <TextView>(Resource.Id.txtBoca); TextView txtAnalisisBoca = FindViewById <TextView>(Resource.Id.txtAnalisisBoca); txtBoca.Text = boca.ToString("N2"); if (boca > Constantes.YawningApertureThreshold) { txtBoca.SetTextColor(Android.Graphics.Color.Red); txtAnalisisBoca.SetTextColor(Android.Graphics.Color.Red); txtAnalisisBoca.Text = "Posiblemente está bostezando"; await PlayAlarm(); } else { txtBoca.SetTextColor(Android.Graphics.Color.Green); txtAnalisisBoca.SetTextColor(Android.Graphics.Color.Green); txtAnalisisBoca.Text = "OK"; } var ojos = ImageAnalyzer.AnalizarOjos(rostro); TextView txtOjos = FindViewById <TextView>(Resource.Id.txtOjos); TextView txtAnalisisOjos = FindViewById <TextView>(Resource.Id.txtAnalisisOjos); txtOjos.Text = ojos.ToString("N2"); if (ojos < Constantes.SleepingApertureThreshold) { txtOjos.SetTextColor(Android.Graphics.Color.Red); txtAnalisisOjos.SetTextColor(Android.Graphics.Color.Red); txtAnalisisOjos.Text = "¡Está dormido!"; await PlayAlarm(); } else { txtOjos.SetTextColor(Android.Graphics.Color.Green); txtAnalisisOjos.SetTextColor(Android.Graphics.Color.Green); txtAnalisisOjos.Text = "OK"; } if (descripcion.Description.Captions.Length > 0) { var distraccion = descripcion.Description.Captions[0].Text; TextView txtCelular = FindViewById <TextView>(Resource.Id.txtCelular); TextView txtAnalisisCelular = FindViewById <TextView>(Resource.Id.txtAnalisisCelular); if (distraccion.Contains("phone")) { txtCelular.Text = "SI"; txtCelular.SetTextColor(Android.Graphics.Color.Red); txtAnalisisCelular.SetTextColor(Android.Graphics.Color.Red); txtAnalisisCelular.Text = "¡Está usando el teléfono móvil!"; } else { txtCelular.Text = "NO"; txtCelular.SetTextColor(Android.Graphics.Color.Green); txtAnalisisCelular.SetTextColor(Android.Graphics.Color.Green); txtAnalisisCelular.Text = "OK"; } } }); } } catch (FileNotFoundException e) { } catch (IOException e) { } finally { isAnalyzing = false; } }
private async void ButtonAnalizar_Clicked(object sender, EventArgs e) { var mensaje = await ServicioFace.AnalizarFoto(foto); await DisplayAlert("Analisis", mensaje, "OK"); }
async void btnAnalizar_Clicked(object sender, EventArgs e) { if (foto != null) { try { Loading(true); // Fase 1 - Face var rostro = await ServicioFace.DetectarRostro(foto); var frente = ImageAnalyzer.AnalizarPostura(rostro); txtFrente.Text = frente.ToString("N2"); if (frente > Constantes.LookingAwayAngleThreshold) { txtFrente.TextColor = Color.Red; txtAnalisisFrente.TextColor = Color.Red; txtAnalisisFrente.Text = "Mire al frente se va a matar"; } else { txtFrente.TextColor = Color.Green; txtAnalisisFrente.TextColor = Color.Green; txtAnalisisFrente.Text = "OK"; } // Fase 2 - Vision var descripcion = await ServicioVision.DescribirImagen(foto); var analisis = await ServicioVision.AnalizarImagen(foto); if (descripcion.Description.Captions.Length > 0) { var distraccion = descripcion.Description.Captions[0].Text; if (distraccion.Contains("phone")) { txtCelular.Text = "SI"; txtCelular.TextColor = Color.Red; txtAnalisisCelular.TextColor = Color.Red; txtAnalisisCelular.Text = "¡El celular al bolante MATAAAAAAAAAAA......!"; } else { txtCelular.Text = "NO"; txtCelular.TextColor = Color.Green; txtAnalisisCelular.TextColor = Color.Green; txtAnalisisCelular.Text = "OK"; } } } catch (Exception ex) { await DisplayAlert("Error", "Excepción: " + ex.Message, "OK"); } finally { Loading(false); } } else { await DisplayAlert("Error", "Debes tomar la fotografía", "OK"); } }
async void btnAnalizar_Clicked(object sender, EventArgs e) { if (foto != null) { try { Loading(true); // Fase 1 - Face var rostro = await ServicioFace.DetectarRostro(foto); var frente = ImageAnalyzer.AnalizarPostura(rostro); txtFrente.Text = frente.ToString("N2"); if (frente > Constantes.LookingAwayAngleThreshold) { txtFrente.TextColor = Color.Red; txtAnalisisFrente.TextColor = Color.Red; txtAnalisisFrente.Text = "No estás mirando al frente"; } else { txtFrente.TextColor = Color.Green; txtAnalisisFrente.TextColor = Color.Green; txtAnalisisFrente.Text = "OK"; } var boca = ImageAnalyzer.AnalizarBoca(rostro); txtBoca.Text = boca.ToString("N2"); if (boca > Constantes.YawningApertureThreshold) { txtBoca.TextColor = Color.Red; txtAnalisisBoca.TextColor = Color.Red; txtAnalisisBoca.Text = "Posiblemente está bostezando"; } else { txtBoca.TextColor = Color.Green; txtAnalisisBoca.TextColor = Color.Green; txtAnalisisBoca.Text = "OK"; } var ojos = ImageAnalyzer.AnalizarOjos(rostro); txtOjos.Text = ojos.ToString("N2"); if (ojos < Constantes.SleepingApertureThreshold) { txtOjos.TextColor = Color.Red; txtAnalisisOjos.TextColor = Color.Red; txtAnalisisOjos.Text = "¡Está dormido!"; } else { txtOjos.TextColor = Color.Green; txtAnalisisOjos.TextColor = Color.Green; txtAnalisisOjos.Text = "OK"; } // Fase 2 - Vision var descripcion = await ServicioVision.DescribirImagen(foto); var analisis = await ServicioVision.AnalizarImagen(foto); if (descripcion.Description.Captions.Length > 0) { var distraccion = descripcion.Description.Captions[0].Text; if (distraccion.Contains("phone")) { txtCelular.Text = "SI"; txtCelular.TextColor = Color.Red; txtAnalisisCelular.TextColor = Color.Red; txtAnalisisCelular.Text = "¡Está usando el teléfono móvil!"; } else { txtCelular.Text = "NO"; txtCelular.TextColor = Color.Green; txtAnalisisCelular.TextColor = Color.Green; txtAnalisisCelular.Text = "OK"; } } } catch (Exception ex) { await DisplayAlert("Error", "Excepción: " + ex.Message, "OK"); } finally { Loading(false); } } else { await DisplayAlert("Error", "Debes tomar la fotografía", "OK"); } }
async void btnRegistrar_Clicked(object sender, EventArgs e) { //await ServicioFace.CrearGrupoEmpleados(); if (foto1 != null && foto2 != null && foto3 != null) { bool op = false; try { Loading(true); var nombre = txtNombre.Text; var direccion = txtDireccion.Text; var telefono = txtTelefono.Text; var cedula = txtCedula.Text; var personID = await ServicioFace.RegistrarPersonaEnGrupo(nombre); await ServicioFace.RegistrarRostro(personID, foto1.GetStream()); await ServicioFace.RegistrarRostro(personID, foto2.GetStream()); await ServicioFace.RegistrarRostro(personID, foto3.GetStream()); var usuario = new Usuario() { Key = personID.ToString(), Nombre = nombre, EmocionActual = "", FotoActual = "", ScoreActual = 0, Cedula = cedula, Direccion = direccion, Telefono = telefono }; op = await new ServicioBaseDatos().RegistrarUsuario(usuario); } catch (Exception ex) { } finally { if (op) { await DisplayAlert("Correcto", "usuario registrado correctamente", "OK"); await Navigation.PushAsync(new PaginaLogin()); } else { await DisplayAlert("Error", "Error al registrar el usuario", "OK"); } Loading(false); } } else { await DisplayAlert("Error", "Debes tomar 3 fotografías al usuario para poder registrarlo", "OK"); } }