Я пытаюсь создать приложение, использующее распознавание текста, которое поставляется с пакетом 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,
),
(...)
У меня нет ошибок. Кто-нибудь с большим опытом может помочь мне? Спасибо