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); 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; } }
public void OnItemClick(AdapterView parent, View view, int position, long id) { FaceListAdapter faceListAdapter = activity.mTargetFaceListAdapter; if (!faceListAdapter.faces[position].FaceId.Equals(activity.mFaceId)) { activity.mFaceId = faceListAdapter.faces[position].FaceId; ImageView imageView = (ImageView)activity.FindViewById(Resource.Id.image); imageView.SetImageBitmap(faceListAdapter.faceThumbnails[position]); // Clear the result of finding similar faces. GridView similarFaces = (GridView)activity.FindViewById(Resource.Id.similar_faces); activity.mSimilarFaceListAdapter = new SimilarFaceListAdapter(null, activity); similarFaces.Adapter = activity.mSimilarFaceListAdapter; similarFaces = (GridView)activity.FindViewById(Resource.Id.facial_similar_faces); activity.mSimilarFaceListAdapter = new SimilarFaceListAdapter(null, activity); similarFaces.Adapter = activity.mSimilarFaceListAdapter; activity.SetInfo(""); } // Show the list of detected face thumbnails. ListView listView = (ListView)activity.FindViewById(Resource.Id.list_faces); listView.Adapter = faceListAdapter; }
private void SetUiAfterDetectionForSelectImage(Face[] result) { SetAllButtonsEnabledStatus(true); // Show the detailed list of detected faces. mTargetFaceListAdapter = new FaceListAdapter(this); mTargetFaceListAdapter.AddFaces(result, mTargetBitmap); // Show the list of detected face thumbnails. ListView listView = (ListView)FindViewById(Resource.Id.list_faces); listView.Adapter = mTargetFaceListAdapter; // Set the default face ID to the ID of first face, if one or more faces are detected. if (mTargetFaceListAdapter.faces.Count != 0) { mFaceId = mTargetFaceListAdapter.faces[0].FaceId; // Show the thumbnail of the default face. ImageView imageView = (ImageView)FindViewById(Resource.Id.image); imageView.SetImageBitmap(mTargetFaceListAdapter.faceThumbnails[0]); } RefreshFindSimilarFaceButtonEnabledStatus(); mTargetBitmap = null; // Set the status bar. SetDetectionStatus(); }
private void InitializeFaceList(int index) { ListView listView = (ListView)FindViewById(index == 0 ? Resource.Id.list_faces_0 : Resource.Id.list_faces_1); listView.ItemClick += (sender, e) => { FaceListAdapter faceListAdapter = index == 0 ? mFaceListAdapter0 : mFaceListAdapter1; if (!faceListAdapter.faces[e.Position].FaceId.Equals( index == 0 ? mFaceId0 : mFaceId1)) { if (index == 0) { mFaceId0 = faceListAdapter.faces[e.Position].FaceId; } else { mFaceId1 = faceListAdapter.faces[e.Position].FaceId; } ImageView imageView = (ImageView)FindViewById(index == 0 ? Resource.Id.image_0 : Resource.Id.image_1); imageView.SetImageBitmap(faceListAdapter.faceThumbnails[e.Position]); SetInfo(""); } // Show the list of detected face thumbnails. ListView lv = (ListView)FindViewById(index == 0 ? Resource.Id.list_faces_0 : Resource.Id.list_faces_1); lv.Adapter = faceListAdapter; }; }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); switch (requestCode) { case (int)REQUEST_SELECT_IMAGE: if (resultCode == Result.Ok) { mImageUri = data.Data; mBitmap = ImageHelper.LoadSizeLimitedBitmapFromUri(mImageUri, this.ContentResolver); if (mBitmap != null) { ImageView image = FindViewById <ImageView>(Resource.Id.image); image.SetImageBitmap(mBitmap); AddLog("Image: " + mImageUri + " resized to " + mBitmap.Width + "x" + mBitmap.Height); } FaceListAdapter faceListAdapter = new FaceListAdapter(null, this); ListView list_detected_faces = FindViewById <ListView>(Resource.Id.list_detected_faces); list_detected_faces.Adapter = faceListAdapter; SetInfo(""); SetDetectButtonEnabledStatus(true); } break; default: break; } }
private void SetUiAfterDetection(Face[] result, bool succeed, ListView list_detected_faces) { mProgressDialog.Dismiss(); SetAllButtonsEnabledStatus(true); SetDetectButtonEnabledStatus(false); if (succeed) { string detectionResult; if (result != null) { detectionResult = result.Length + " face" + (result.Length != 1 ? "s" : "") + " detected"; ImageView image = FindViewById <ImageView>(Resource.Id.image); image.SetImageBitmap(ImageHelper.DrawFaceRectanglesOnBitmap(mBitmap, result, true)); FaceListAdapter faceListAdapter = new FaceListAdapter(result, this); list_detected_faces.Adapter = faceListAdapter; } else { detectionResult = "0 face detected"; } SetInfo(detectionResult); } mImageUri = null; mBitmap = null; }
private void SetUiAfterDetection(Face[] result, int index, bool succeed) { SetSelectImageButtonEnabledStatus(true, index); if (succeed) { AddLog("Response: Success. Detected " + result.Length + " face(s) in image" + index); SetInfo(result.Length + " face" + (result.Length != 1 ? "s" : "") + " detected"); FaceListAdapter faceListAdapter = new FaceListAdapter(result, index, this); if (faceListAdapter.faces.Count != 0) { if (index == 0) { mFaceId0 = faceListAdapter.faces[0].FaceId; } else { mFaceId1 = faceListAdapter.faces[0].FaceId; } ImageView imageView = (ImageView)FindViewById(index == 0 ? Resource.Id.image_0 : Resource.Id.image_1); imageView.SetImageBitmap(faceListAdapter.faceThumbnails[0]); } ListView listView = (ListView)FindViewById(index == 0 ? Resource.Id.list_faces_0 : Resource.Id.list_faces_1); listView.Adapter = faceListAdapter; listView.Visibility = ViewStates.Visible; if (index == 0) { mFaceListAdapter0 = faceListAdapter; mBitmap0 = null; } else { mFaceListAdapter1 = faceListAdapter; mBitmap1 = null; } } if (result != null && result.Length == 0) { SetInfo("No face detected!"); } if ((index == 0 && mBitmap1 == null) || (index == 1 && mBitmap0 == null) || index == 2) { mProgressDialog.Dismiss(); } if (mFaceId0 != null && mFaceId1 != null) { SetVerifyButtonEnabledStatus(true); } }
async Task ExecuteDetection() { try { //progressDialog.Show (); //progressDialog.SetMessage ("Detecting..."); SetInfo("Detecting..."); AddLog($"Request: Detecting in image {imageUri}"); var faces = await FaceClient.Shared.DetectFacesInPhoto( () => bitmap.AsJpegStream(), true, FaceAttributeType.Age, FaceAttributeType.Gender, FaceAttributeType.Smile, FaceAttributeType.Glasses, FaceAttributeType.FacialHair, FaceAttributeType.Emotion, FaceAttributeType.HeadPose); // Show the result on screen when detection is done. var list_detected_faces = FindViewById <ListView> (Resource.Id.list_detected_faces); string detectionResult = "0 face detected"; if (faces?.Count > 0) { detectionResult = $"{faces.Count} face{(faces.Count != 1 ? "s" : "")} detected"; AddLog($"Response: Success. {detectionResult} in {imageUri}"); var image = FindViewById <ImageView> (Resource.Id.image); image.SetImageBitmap(bitmap.DrawFaceRectangles(faces, true)); var faceListAdapter = new FaceListAdapter(faces, bitmap); list_detected_faces.Adapter = faceListAdapter; } SetInfo(detectionResult); } catch (Exception e) { AddLog(e.Message); } //progressDialog.Dismiss (); SetAllButtonsEnabledStatus(true); SetDetectButtonEnabledStatus(false); imageUri = null; bitmap.Dispose(); bitmap = null; }
private void SetUiAfterDetection(Face[] result, bool succeed) { SetSelectImageButtonEnabledStatus(true); if (succeed) { AddLog("Response: Success. Detected " + result.Length + " face(s) in image"); SetInfo(result.Length + " face" + (result.Length != 1 ? "s" : "") + " detected"); // Show the detailed list of detected faces. FaceListAdapter faceListAdapter = new FaceListAdapter(result, this); // Set the default face ID to the ID of first face, if one or more faces are detected. if (faceListAdapter.faces.Count != 0) { mFaceId = faceListAdapter.faces[0].FaceId; // Show the thumbnail of the default face. ImageView imageView = (ImageView)FindViewById(Resource.Id.image_0); imageView.SetImageBitmap(faceListAdapter.faceThumbnails[0]); RefreshVerifyButtonEnabledStatus(); } // Show the list of detected face thumbnails. ListView listView = (ListView)FindViewById(Resource.Id.list_faces_0); listView.Adapter = faceListAdapter; listView.Visibility = ViewStates.Visible; // Set the face list adapters and bitmaps. mFaceListAdapter = faceListAdapter; mBitmap = null; } if (result != null && result.Length == 0) { SetInfo("No face detected!"); } mProgressDialog.Dismiss(); if (mFaceId != null && mPersonGroupId != null) { SetVerifyButtonEnabledStatus(true); } }
private void ListView_Faces_0_ItemClick(object sender, AdapterView.ItemClickEventArgs e) { FaceListAdapter faceListAdapter = mFaceListAdapter; if (!faceListAdapter.faces[e.Position].FaceId.Equals(mFaceId)) { mFaceId = faceListAdapter.faces[e.Position].FaceId; ImageView imageView = (ImageView)FindViewById(Resource.Id.image_0); imageView.SetImageBitmap(faceListAdapter.faceThumbnails[e.Position]); SetInfo(""); } ListView listView = (ListView)FindViewById(Resource.Id.list_faces_0); listView.Adapter = faceListAdapter; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Create your application here SetContentView(Resource.Layout.activity_grouping); mProgressDialog = new ProgressDialog(this); mProgressDialog.SetTitle(Application.Context.GetString(Resource.String.progress_dialog_title)); add_faces = (Button)FindViewById(Resource.Id.add_faces); group = (Button)FindViewById(Resource.Id.group); view_log = (Button)FindViewById(Resource.Id.view_log); mFaceListAdapter = new FaceListAdapter(this); SetGroupButtonEnabledStatus(false); LogHelper.ClearGroupingLog(); }
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) { detected = false; // If image is selected successfully, set the image URI and bitmap. Android.Net.Uri imageUri = data.Data; mBitmap = ImageHelper.LoadSizeLimitedBitmapFromUri( imageUri, this.ContentResolver); if (mBitmap != null) { // Show the image on screen. ImageView imageView = (ImageView)FindViewById(Resource.Id.image); imageView.SetImageBitmap(mBitmap); } // Clear the identification result. FaceListAdapter faceListAdapter = new FaceListAdapter(null, this); ListView listView = (ListView)FindViewById(Resource.Id.list_identified_faces); listView.Adapter = faceListAdapter; // Clear the information panel. SetInfo(""); // Start detecting in image. Detect(); } break; default: break; } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // Create your application here SetContentView(Resource.Layout.activity_find_similar_face); mFaceListAdapter = new FaceListAdapter(this); mProgressDialog = new ProgressDialog(this); mProgressDialog.SetTitle(Application.Context.GetString(Resource.String.progress_dialog_title)); add_faces = (Button)FindViewById(Resource.Id.add_faces); select_image = (Button)FindViewById(Resource.Id.select_image); find_similar_faces = (Button)FindViewById(Resource.Id.find_similar_faces); view_log = (Button)FindViewById(Resource.Id.view_log); SetFindSimilarFaceButtonEnabledStatus(false); InitializeFaceList(); LogHelper.ClearFindSimilarFaceLog(); }
async Task ExecuteDetection() { try { progressDialog.Show(); progressDialog.SetMessage("Detecting..."); SetInfo("Detecting..."); var faces = await FaceClient.Shared.DetectFacesInPhoto(() => bitmap.AsJpegStream()); SetAllButtonsEnabledStatus(true); faceListAdapter = new FaceListAdapter(faces, bitmap); var listView = FindViewById <ListView> (Resource.Id.list_identified_faces); listView.Adapter = faceListAdapter; if (faces?.Count > 0) { detected = true; SetInfo("Click on the \"Identify\" button to identify the faces in image."); } else { detected = false; SetInfo("No faces detected!"); } } catch (Exception e) { detected = false; AddLog(e.Message); } progressDialog.Dismiss(); RefreshIdentifyButtonEnabledStatus(); }
private async void ExecuteDetection() { Face[] faces = null; mProgressDialog.Show(); //AddLog("Request: Detecting in image " + mImageUri); try { var faceClient = new FaceClient(); using (MemoryStream pre_output = new MemoryStream()) { mBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, pre_output); using (ByteArrayInputStream inputStream = new ByteArrayInputStream(pre_output.ToArray())) { byte[] arr = new byte[inputStream.Available()]; inputStream.Read(arr); var output = new MemoryStream(arr); mProgressDialog.SetMessage("Detecting..."); SetInfo("Detecting..."); faces = await faceClient.Detect(output, true, false, null); } } } catch (Java.Lang.Exception e) { AddLog(e.Message); } RunOnUiThread(() => { mProgressDialog.Dismiss(); SetAllButtonsEnabledStatus(true); if (faces != null) { // Set the adapter of the ListView which contains the details of detected faces. mFaceListAdapter = new FaceListAdapter(faces, this); ListView listView = (ListView)FindViewById(Resource.Id.list_identified_faces); listView.Adapter = mFaceListAdapter; if (faces.Count() == 0) { detected = false; SetInfo("No faces detected!"); } else { detected = true; SetInfo("Click on the \"Identify\" button to identify the faces in image."); } } else { detected = false; } RefreshIdentifyButtonEnabledStatus(); }); }