Не удается распознать текст при использовании комплекта Firebase_ml_vision с камеры - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь создать приложение, использующее распознавание текста, которое поставляется с пакетом Firebase_ml_vision. Когда я использую Firebase.VisionImage.fromFile (selectedImage) и загружаю изображение из Интернета с текстом, оно работает отлично, но когда я пытаюсь использовать изображение, снятое на камеру iPhone Xr, текст не читается прилично. Вывод похож на это:

флаттер: 2000 AADAT4A флаттер: 2000 AADAT4A флаттер: 20000 флаттер: 03012 флаттер: 2000

это происходит, когда я пытаюсь напечатать строки или элементы blocks.text.

У кого-нибудь есть идеи, как это реализовать?

Я использовал этот код: (это не весь код, а необходимый)

File pickedImage;

List<String> words = [];

Future pickImage() async {
    var tempStore =
        await ImagePicker.pickImage(source: ImageSource.gallery); //gallery here
    setState(() {
      pickedImage = tempStore;
      isImageLoaded = true;
    });
  }

    Future pickCameraImage() async {
        var tempStore =
            await ImagePicker.pickImage(source: ImageSource.camera); //camera here
        setState(() {
          pickedImage = tempStore;
          isImageLoaded = true;
        });
      }

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

    for (TextBlock block in readText.blocks) {
//      final Rect boundingBox = block.boundingBox;
//      final List<Offset> cornerPoints = block.cornerPoints;
//      final String text = block.text;
//      final List<RecognizedLanguage> languages = block.recognizedLanguages;

      for (TextLine line in block.lines) {
        print(block.text);
        for (TextElement word in line.elements) {
          words.add(word.text);
        }
      }
    } isTextLoaded = true;
  }

В пользовательской части:

(...)

RaisedButton(
            child: Text('Pick an Image'),
            onPressed: pickImage,
          ),
          SizedBox(
            height: 10.0,
          ),
          RaisedButton(
            child: Text('Pick a Camera Image'),
            onPressed: pickCameraImage,
          ),
          SizedBox(
            height: 10.0,
          ),
          RaisedButton(
            child: Text('Read Text'),
            onPressed: readText,
          ),

(...)

У меня нет ошибок. Кто-нибудь с большим опытом может помочь мне? Спасибо

...