在 Flutter 中使用 Google ML-Kit 设备端文本识别

是否可以在 Flutter 中使用 Google ML-Kit On-Device Text Recognition?我在网上找到的所有教程和资源都是 firebase_ml_vision ,但我正在寻找使用 Google ML-Kit 的免费 OCR 的教程和资源。我将如何在 Flutter 中做到这一点?

stack overflow Using Google ML-Kit On-Device Text Recognition in Flutter
原文答案
author avatar

接受的答案

正如@Sayan Nath 所说,您可以使用 mlkit ,但我认为更好的选择是 google_ml_kit ,参与firebase_ml_vision 的firebase 团队也推荐使用它。


答案:

作者头像

是的,你当然可以使用这个包 https/pub.dev/packages/mlkit 这是 google 的 mlkit。 OCR 还支持 ios 和 android。快乐编码 ;)

作者头像

使用此软件包 https://pub.dev/packages/camera_google_ml_vision 在如何使用firebase_ml_vision方面完全相同

作者头像

ML套件用于文本识别

关注Google ML套件的安装( https://pub.dev/packages/google_ml_kit )。(颤音2.8)

设置这个东西

bool hasImage = false;
File? image;
TextDetector textDetector = GoogleMlKit.vision.textDetector();
String? imagePath;
String scanText = '';

要获取图像,请使用图像拾取器: https://pub.dev/packages/image_picker

Future getImage(ImageSource source) async {
    try {
      final image = await ImagePicker().pickImage(source: source);
      if (image == null) return;
      final imageTemporary = File(image.path);
      setState(() {
        this.image = imageTemporary;
        imagePath = imageTemporary.path;
        debugPrint(imagePath);
        hasImage = true;
      });
    } on PlatformException catch (e) {
      debugPrint('Failed to pick image: $e');
    }
  }

从图像获取文本的代码

Future getText(String path) async {
    final inputImage = InputImage.fromFilePath(path);
    final RecognisedText recognisedText =
        await textDetector.processImage(inputImage);

    for (TextBlock block in recognisedText.blocks) {
      for (TextLine line in block.lines) {
        for (TextElement element in line.elements) {
          setState(() {
            scanText = scanText + '  ' + element.text;
            debugPrint(scanText);
          });
        }
        scanText = scanText + 'n';
      }
    }
  }

调用 getText 函数并传递图像路径。 getText(imagePath)