Esempio n. 1
0
        void ProcessTakenPicture(object sender, PictureCallbackEventArgs args)
        {
            cameraView.Post(delegate
            {
                progress.Visibility = ViewStates.Visible;
            });

            var bitmap = BitmapFactory.DecodeByteArray(args.image, 0, args.image.Length);

            var matrix = new Matrix();

            matrix.SetRotate(args.imageOrientation, bitmap.Width / 2, bitmap.Height / 2);
            var result = Bitmap.CreateBitmap(bitmap, 0, 0, bitmap.Width, bitmap.Height, matrix, false);

            var detector = sdk.MultipleObjectsDetector();

            if (modParams != null)
            {
                detector.SetParams(modParams);
            }
            var polygons = detector.DetectOnBitmap(result, 0);
            var pages    = new List <Page>();

            foreach (var polygon in polygons)
            {
                var id      = sdk.PageFileStorage.Add(result);
                var page    = new Page(id, new List <PointF>(), DetectionResult.Ok, ImageFilterType.Binarized);
                var cropped = sdk.PageProcessor().CropAndRotate(page, 0, polygon.PolygonF);
                pages.Add(cropped);
            }

            var processor = sdk.BusinessCardsImageProcessor();
            var languages = sdk.OcrRecognizer().InstalledLanguages;

            ProcessedResults = processor.ProcessPages(pages, languages, true, true).ToList();

            var i = 1;

            foreach (var item in ProcessedResults)
            {
                var text = item.OcrResult.RecognizedText;
                Console.WriteLine($"Recognized text on card {i}:\n {text}\n\n");
                i++;
            }

            RunOnUiThread(delegate
            {
                Toast.MakeText(this, $"Found {ProcessedResults.Count} business cards", ToastLength.Short).Show();
                progress.Visibility = ViewStates.Gone;
                var intent          = new Intent(this, typeof(BusinessCardsPreviewActivity));
                StartActivity(intent);
            });
        }