Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
        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);
                }
            }
        }
Exemple #5
0
        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!");
            }
        }
Exemple #6
0
        protected override async void OnResume()
        {
            base.OnResume();

            done_and_save.Click += Done_And_Save_Click;

            sourceImage = ContentResolver.LoadSizeLimitedBitmapFromUri(imageUri);

            if (sourceImage != null)
            {
                await ExecuteDetection();
            }
        }
Exemple #7
0
        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();
                }
            }
        }