flutter_tesseract_ocr 0.3.1 flutter_tesseract_ocr: ^0.3.1 copied to clipboard
Tesseract 4 adds a new neural net (LSTM) based OCR engine which is focused on line recognition. It has unicode (UTF-8) support, and can recognize more than 100 languages.
Tesseract OCR for Flutter #
Tesseract OCR 4.0 for flutter This plugin is based on Tesseract OCR 4 This plugin uses Tesseract4Android and SwiftyTesseract.
install #
dev_dependencies:
...
flutter_tesseract_ocr:
git :
url: https://github.com/khjde1207/tesseract_ocr
android #
- android/settings.gradle
include ':app'
-> include ':app', ':tesseract4android-release'
-
copy
./example/tesseract4android-release
->[project]/tesseract4android-release
-
android/app/build.gradle
android {
compileSdkVersion.....
...
sourceSets {
...
}
packagingOptions{
doNotStrip '*/mips/*.so'
doNotStrip '*/mips64/*.so'
}
}
Getting Started #
You must add trained data and trained data config file to your assets directory. You can find additional language trained data files here Trained language files
add tessdata folder under assets folder, add tessdata_config.json file under assets folder:
{
"files": [
"eng.traineddata",
"<other_language>.traineddata"
]
}
Plugin assumes you have tessdata folder in your assets directory and defined in your pubspec.yaml
Check the contents of example/assets folder and example/pubspec.yaml
Usage #
Using is very simple:
//args android only
String text = await TesseractOcr.extractText('/path/to/image', language: 'kor+eng',
args: {
"psm": "4",
"preserve_interword_spaces": "1",
});
You can leave language
empty, it will default to `'eng'.
//---- dynamic add Tessdata ---- ▼
// https://github.com/tesseract-ocr/tessdata/raw/master/dan_frak.traineddata
// download and read Tessdata (Uint8List)
String newTessDataFile = "deu.traineddata";
Directory d = Directory(await TesseractOcr.getTessdataPath());
d.list().forEach((traineddata) {
print(traineddata); //current traineddata
});
File('${d.path}/${newTessDataFile}').writeAsBytes([Uint8List bytes]);
//---- dynamic add Tessdata ---- ▲