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); }); }