Как использовать распознавание текста во флаттере? - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу создать текстовое приложение ocr, и я использовал flutter и firebase ml vision.

Я столкнулся с исключением, когда хочу прочитать текст.

I 'я перенес мое приложение на androidx и проверил FireBase и версию Gradle.

Я могу создать приложение без каких-либо проблем с Gradle, и приложение также запускается.

, но, как я уже упоминал выше, проблеманачинается при чтении текста.

Ниже вы можете увидеть мой код и ошибку.

, пожалуйста, помогите мне, потому что я пытался исправить это более 6 часов.

Мой код:

Future pickImage() async {
    File pickedImage = await ImagePicker.pickImage(
      source: ImageSource.gallery,
    );
    setState(() {
      fileImage = pickedImage;
      isImageLoaded = true;
    });
  }

  Future readText() async {
    FirebaseVisionImage ourImage = FirebaseVisionImage.fromFile(fileImage);
    TextRecognizer recognizeText = FirebaseVision.instance.textRecognizer();
    VisionText readText = await recognizeText.processImage(ourImage);

     for (TextBlock block in readText.blocks) {
      for (TextLine line in block.lines) {
        for (TextElement word in line.elements) {
          print(word.text);
        }
      }
    }
  }

Ошибка:

[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(textRecognizerError, Waiting for the text recognition model to be downloaded. Please wait., null)
E/flutter (14595): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter (14595): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:316:33)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #2      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:344:48)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #3      TextRecognizer.processImage (package:firebase_ml_vision/src/text_recognizer.dart:40:38)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #4      _MyHomePageState.readText (package:text_ocr/main.dart:57:47)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #5      _MyHomePageState.build.<anonymous closure> (package:text_ocr/main.dart:100:25)
E/flutter (14595): <asynchronous suspension>
E/flutter (14595): #6      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14)
E/flutter (14595): #7      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:729:32)
E/flutter (14595): #8      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
E/flutter (14595): #9      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
E/flutter (14595): #10     TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
E/flutter (14595): #11     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
E/flutter (14595): #12     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
E/flutter (14595): #13     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
E/flutter (14595): #14     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
E/flutter (14595): #15     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
E/flutter (14595): #16     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (14595): #17     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (14595): #18     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (14595): #19     _rootRunUnary (dart:async/zone.dart:1136:13)
E/flutter (14595): #20     _CustomZone.runUnary (dart:async/zone.dart:1029:19)
E/flutter (14595): #21     _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
E/flutter (14595): #22     _invoke1 (dart:ui/hooks.dart:263:10)
E/flutter (14595): #23     _dispatchPointerDataPacket (dart:ui/hooks.dart:172:5)
E/flutter (14595): 

1 Ответ

0 голосов
/ 12 ноября 2019

Добавьте это в свой файл android / app / AndroidManifest.xml:

<application ...>
  ...
  <meta-data
    android:name="com.google.firebase.ml.vision.DEPENDENCIES"
    android:value="ocr" />
  <!-- To use multiple models: android:value="ocr,label,barcode,face" -->
</application>

При загрузке приложения будут загружены ресурсы, которые в данный момент отсутствуют.

...