如何在Flutter中使用文字识别?

我想创建一个文本ocr应用程序,并且使用了flutter和firebase ml视觉。

我想阅读文字时遇到一个例外。

我已将我的应用迁移到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): 

wuzheng96201 回答:如何在Flutter中使用文字识别?

将此添加到您的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>

在安装应用程序时,它将下载您当前缺少的资源。

本文链接:https://www.f2er.com/3160411.html

大家都在问