Awesome
flutter_mobile_vision
Flutter implementation for Google Mobile Vision.
Based on Google Mobile Vision.
Android Samples -=- iOS Samples
Liked? :star: Star the repo to support the project!
Features
-
Android
- Barcode Scan
- Front or Back camera.
- Select preview sizes.
- Simple scan.
- Toggle torch.
- Toggle auto focus.
- Specify types of barcodes that will be read.
- Tap to capture.
- Select barcode type to be scanned.
- Scan multiple barcodes.
- Barcode coordinates.
- Show barcode text.
- Standard code.
- Recognize Text
- Front or Back camera.
- Select preview sizes.
- Simple OCR.
- Toggle torch.
- Toggle auto focus.
- Multiple recognition.
- Text language.
- Text coordinates.
- Hide recognized text.
- Standard code.
- Detect Faces
- Front or Back camera.
- Select preview sizes.
- Simple detection.
- Toggle torch.
- Toggle auto focus.
- Multiple detection.
- Face coordinates.
- Hide detection information.
- Standard code.
- Generalization of capture activities.
- Choose between back and front camera.
- Control camera FPS.
- Barcode Scan
-
iOS
- Barcode Scan
- Future Tasks
- Recognize Text
- Future Tasks
- Detect Faces
- Future Tasks
- Barcode Scan
Your feature isn't listed? Open a issue right now!
Screenshots
<img src="assets/flutter_01.png" height="300em"/> <img src="assets/flutter_02.png" height="300em"/> <img src="assets/flutter_03.png" height="300em"/> <img src="assets/flutter_04.png" height="300em"/> <img src="assets/flutter_05.png" height="300em"/> <img src="assets/flutter_06.png" height="300em"/> <img src="assets/flutter_07.png" height="300em"/> <img src="assets/flutter_08.png" height="300em"/>
Usage
To use this plugin :
- add the dependency to your
pubspec.yaml
file:
dependencies:
flutter:
sdk: flutter
flutter_mobile_vision: ^0.1.3
- add FlutterMobileVision.start() to initState():
@override
void initState() {
super.initState();
FlutterMobileVision.start().then((x) => setState(() {}));
}
or for a better implementation:
@override
void initState() {
super.initState();
FlutterMobileVision.start().then((previewSizes) => setState(() {
_previewBarcode = previewSizes[_cameraBarcode].first;
_previewOcr = previewSizes[_cameraOcr].first;
_previewFace = previewSizes[_cameraFace].first;
}));
}
Barcode
//...
List<Barcode> barcodes = [];
try {
barcodes = await FlutterMobileVision.scan(
flash: _torchBarcode,
autoFocus: _autoFocusBarcode,
formats: _onlyFormatBarcode,
multiple: _multipleBarcode,
waitTap: _waitTapBarcode,
showText: _showTextBarcode,
preview: _previewBarcode,
camera: _cameraBarcode,
fps: 15.0,
);
} on Exception {
barcodes.add(new Barcode('Failed to get barcode.'));
}
//...
Android
For Android, you must do the following before you can use the plugin:
-
Add the camera permission to your AndroidManifest.xml
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
-
Add the Barcode activity to your AndroidManifest.xml (after other activity nodes)
<activity android:name="io.github.edufolly.fluttermobilevision.barcode.BarcodeCaptureActivity" />
iOS
If you can help, the community thanks. Your fork is needed. :wink:
OCR
//...
List<OcrText> texts = [];
try {
texts = await FlutterMobileVision.read(
flash: _torchOcr,
autoFocus: _autoFocusOcr,
multiple: _multipleOcr,
showText: _showTextOcr,
previewSize: _previewOcr,
preview: _previewOcr,
camera: _cameraOcr,
fps: 2.0,
);
} on Exception {
texts.add(new OcrText('Failed to recognize text.'));
}
//...
Android
For Android, you must do the following before you can use the plugin:
-
Add the camera permission to your AndroidManifest.xml
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
-
Add the OCR activity to your AndroidManifest.xml (after other activity nodes)
<activity android:name="io.github.edufolly.fluttermobilevision.ocr.OcrCaptureActivity" />
iOS
If you can help, the community thanks. Your fork is needed. :wink:
Face Detection
//...
List<Face> faces = [];
try {
faces = await FlutterMobileVision.face(
flash: _torchFace,
autoFocus: _autoFocusFace,
multiple: _multipleFace,
showText: _showTextFace,
preview: _previewFace,
camera: _cameraFace,
fps: 15.0,
);
} on Exception {
faces.add(new Face(-1));
}
//...
Android
For Android, you must do the following before you can use the plugin:
-
Add the camera permission to your AndroidManifest.xml
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
-
Add the Face Detection activity to your AndroidManifest.xml (after other activity nodes)
<activity android:name="io.github.edufolly.fluttermobilevision.face.FaceCaptureActivity" />
iOS
If you can help, the community thanks. Your fork is needed. :wink: