protected async override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_SELECT_IMAGE: if (resultCode == Result.Ok) { detected = false; // If image is selected successfully, set the image URI and bitmap. bitmap = ContentResolver.LoadSizeLimitedBitmapFromUri(data.Data); if (bitmap != null) { // Show the image on screen. var imageView = FindViewById <ImageView> (Resource.Id.image); imageView.SetImageBitmap(bitmap); } // Clear the identification result. var emptyFaceListAdapter = new FaceListAdapter(null, null); var listView = FindViewById <ListView> (Resource.Id.list_identified_faces); listView.Adapter = emptyFaceListAdapter; // Clear the information panel. SetInfo(""); // Start detecting in image. await Detect(); } break; } }
protected async override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (requestCode != REQUEST_SELECT_IMAGE) { return; } try { if (resultCode == Result.Ok) { var selectedPhoto = ContentResolver.LoadSizeLimitedBitmapFromUri(data.Data); if (selectedPhoto != null) { SetVerifyButtonEnabledStatus(false); ClearDetectedFaces(); bitmap = selectedPhoto; AddLog($"Image: {data.Data} resized to {bitmap.Width} x {bitmap.Height}"); await Detect(); } } } catch (Exception ex) { AddLog(ex.Message); } }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_SELECT_IMAGE: if (resultCode == Result.Ok) { imageUri = data.Data.ToString(); bitmap = ContentResolver.LoadSizeLimitedBitmapFromUri(data.Data); if (bitmap != null) { var image = FindViewById <ImageView> (Resource.Id.image); image.SetImageBitmap(bitmap); AddLog($"Image: {imageUri} resized to {bitmap.Width}x{bitmap.Height}"); } var faceListAdapter = new FaceListAdapter(null, null); var list_detected_faces = FindViewById <ListView> (Resource.Id.list_detected_faces); list_detected_faces.Adapter = faceListAdapter; SetInfo(""); SetDetectButtonEnabledStatus(true); } break; } }
protected async override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); int index = requestCode; if (resultCode == Result.Ok) { // If image is selected successfully, set the image bitmap. var bitmap = ContentResolver.LoadSizeLimitedBitmapFromUri(data.Data); if (bitmap != null) { // Image is select but not detected, disable verification button. SetVerifyButtonEnabledStatus(false); ClearDetectedFaces(index); Bitmaps [index] = bitmap; Faces [index] = null; AddLog($"Image{index}: {data.Data} resized to {bitmap.Width} x {bitmap.Height}"); // Start detecting in image. await Detect(bitmap, index); } } }
async Task Detect(global::Android.Net.Uri uri, int requestCode) { try { using (var bitmap = ContentResolver.LoadSizeLimitedBitmapFromUri(uri)) { if (bitmap != null) { FindViewById(Resource.Id.all_faces).Visibility = ViewStates.Visible; SetAllButtonsEnabledStatus(false); var faces = await ExecuteDetection(bitmap); SetAllButtonsEnabledStatus(true); switch (requestCode) { case REQUEST_ADD_FACE: if (faces?.Count > 0) { faceListAdapter.AddFaces(faces, bitmap); var textView = FindViewById <TextView> (Resource.Id.text_all_faces); textView.Text = $"Face database: {faces.Count} face{(faces.Count != 1 ? "s" : "")} in total"; } break; case REQUEST_SELECT_IMAGE: targetFaceListAdapter = new FaceImageListAdapter(); var listView = FindViewById <ListView> (Resource.Id.list_faces); listView.Adapter = targetFaceListAdapter; if (faces?.Count > 0) { targetFaceListAdapter.AddFaces(faces, bitmap); // Set the default face ID to the ID of first face, if one or more faces are detected. targetFaceListAdapter.SetSelectedIndex(0); // Show the thumbnail of the default face. var imageView = FindViewById <ImageView> (Resource.Id.image); imageView.SetImageBitmap(targetFaceListAdapter.GetThumbnailForPosition(0)); } break; } RefreshFindSimilarFaceButtonEnabledStatus(); SetInfo("Detection is done"); } } } catch (Exception e) { AddLog(e.Message); SetInfo("No face detected!"); } }
protected override async void OnResume() { base.OnResume(); done_and_save.Click += Done_And_Save_Click; sourceImage = ContentResolver.LoadSizeLimitedBitmapFromUri(imageUri); if (sourceImage != null) { await ExecuteDetection(); } }
protected async override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (resultCode == Result.Ok && requestCode == REQUEST_SELECT_IMAGE) { bitmap = ContentResolver.LoadSizeLimitedBitmapFromUri(data.Data); if (bitmap != null) { FindViewById(Resource.Id.all_faces).Visibility = ViewStates.Visible; var groupedFaces = FindViewById <ListView> (Resource.Id.grouped_faces); var faceGroupsAdapter = new FaceGroupsAdapter(null, null); groupedFaces.Adapter = faceGroupsAdapter; SetAllButtonsEnabledStatus(false); await ExecuteDetection(); } } }