Изображение к тексту в том же формате - MLkit Firebase - PullRequest
0 голосов
/ 28 марта 2020

Я разрабатываю приложение для извлечения текста из факта питания. Используя MLkit firebase, я достигаю этого, но у меня есть одна проблема, что текст не отображается в том же формате, что и на изображении. Вот мой код для распознавания текста.

            // ----TextRecognizer START ---


            BitmapDrawable bitmapDrawable = (BitmapDrawable) mPreview.getDrawable();
            Bitmap bitmap = bitmapDrawable.getBitmap();



            final FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap);
            FirebaseVisionCloudTextRecognizerOptions options = new FirebaseVisionCloudTextRecognizerOptions.Builder()
                    .setLanguageHints(Arrays.asList("en", "ar"))
                    .build();
            // [END set_detector_options_cloud]

            // [START get_detector_cloud]
            // Or, to change the default settings:
               FirebaseVisionTextRecognizer detector = FirebaseVision.getInstance()
                      .getCloudTextRecognizer(options);
            // [END get_detector_cloud]

            // [START run_detector_cloud]

            Task<FirebaseVisionText> result2 = detector.processImage(image)
                    .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
                        @Override
                        public void onSuccess(FirebaseVisionText result) {
                            // Task completed successfully
                            // [START_EXCLUDE]
                            // [START get_text_cloud]
                            StringBuilder sb = new StringBuilder();
                            for (FirebaseVisionText.TextBlock block : result.getTextBlocks()) {
                                if (result.getTextBlocks().size() == 0){
                                    mResultEt.setText("NO Text Found");
                                }else {
                                    Rect boundingBox = block.getBoundingBox();
                                    Point[] cornerPoints = block.getCornerPoints();
                                    String text = block.getText();

                                    for (FirebaseVisionText.Line line: block.getLines()) {
                                        sb.append(line.getText());
                                        sb.append("\n");
                                        for (FirebaseVisionText.Element element: line.getElements()) {

                                        }
                                    }
                                }

                            }

                            mResultEt.setText(sb);


                            // [END get_text_cloud]
                            // [END_EXCLUDE]

Это изображение, которое я хочу извлечь из текста , это результат, но формат не такой, как изображение

Я пробовал разные решения, добавляя новую строку или вкладку, но это одно и то же.

Кстати, я хочу использовать числа на изображении для некоторых вычислений.

Если кто-нибудь может мне помочь с этим, я был бы признателен.

1 Ответ

1 голос
/ 24 апреля 2020

ML Kit пока не определяет автоматически макет. Но каждый обнаруженный текст имеет свои координаты. Одним из решений является использование текстовых координат для определения решения о расположении вручную.

Скажите, что 'Размер порции' и '1 банка' имеют одинаковую ось X, тогда вы можете сгруппировать их вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...