ML Vision Text не работает в портретной ориентации
У меня проблема с Flutter firebase_ml_vision. При тестировании на iPad Mini 2 (в прошлом это уже было на Android) текст не обнаруживается при съемке фотографии в портретном режиме. Вроде работает в пейзаже. У меня была такая же проблема, когда я писал оригинальное приложение на Native Android (с тех пор я решил сделать это во Flutter/Dart)
Я потратил несколько часов, пытаясь понять это. Кажется, это известная проблема, но по ее решению нет единого мнения.
Ближе всего к этому я работал с функцией This SO fixExifRotation(), однако читаемый текст зашифрован.
Кто-нибудь сталкивался с этой проблемой и нашел рабочее решение?
Future<String> takePicture() async {
File imageFile = await ImagePicker.pickImage(
source: ImageSource.camera,
imageQuality: 100,
);
if (imageFile == null) {
return null;
}
final appDir = await syspaths.getApplicationDocumentsDirectory();
final fileName = path.basename(rotatedFile.path);
final savedImage = await rotatedFile.copy('${appDir.path}/$fileName');
return '${appDir.path}/$fileName';
}
...
Future<MLResult> processText({@required BuildContext context,String imageFilePath}) async {
final FirebaseVisionImage visionImage =
FirebaseVisionImage.fromFilePath(imageFilePath);
final TextRecognizer _recognizer = FirebaseVision.instance.textRecognizer();
final VisionText readText = await _recognizer.processImage(visionImage);
var blocks = readText.blocks;
if (blocks.length == 0) {
//*** THIS IF BLOCK IS EXECUTED - no text is detected by ML Vision.
}
}
imagePath = await Vision.takePicture();
Vision.processText(
context: context,
imageFilePath: imagePath,
).then((value) {..});