React Native Vision Camera Frame Processor Plugin of Dynamsoft Label Recognizer
label-recognizer-example.mp4
For vision-camera v2, use versions 0.x.
For vision-camera v3, use versions >= 1.0.0.
yarn add vision-camera-dynamsoft-label-recognizer
cd ios && pod install
Add the plugin to your babel.config.js
:
module.exports = {
plugins: [['react-native-worklets-core/plugin']],
// ...
Note: You have to restart metro-bundler for changes in the
babel.config.js
file to take effect.
-
Scan text with vision camera.
import { recognize } from 'vision-camera-dynamsoft-label-recognizer'; // ... const frameProcessor = useFrameProcessor((frame) => { 'worklet'; const scanResult = recognize(frame); }, []);
-
Scan text from base64-encoded static images.
const scanResult = await decodeBase64(base64);
-
License initialization (apply for a trial license).
await initLicense("your license");
Scanning configuration:
//the value is in percentage
export interface ScanRegion{
left: number;
top: number;
width: number;
height: number;
}
export interface ScanConfig{
scanRegion?: ScanRegion;
includeImageBase64?: boolean;
}
export interface CustomModelConfig {
customModelFolder: string;
customModelFileNames: string[];
}
You can use a custom model like a model for MRZ passport reading using the CustomModelConfig
prop and update the template. You can find the MRZ model and template in the example.
You need to put the model folder in the assets
folder for Android or the root for iOS.
About the result:
export interface ScanResult {
results: DLRResult[];
imageBase64?: string;
}
export interface DLRResult {
referenceRegionName: string;
textAreaName: string;
pageNumber: number;
location: Quadrilateral;
lineResults: DLRLineResult[];
}
export interface Quadrilateral{
points:Point[];
}
export interface Point {
x:number;
y:number;
}
export interface DLRLineResult {
text: string;
confidence: number;
characterModelName: string;
characterResults: DLRCharacherResult[];
lineSpecificationName: string;
location: Quadrilateral;
}
export interface DLRCharacherResult {
characterH: string;
characterM: string;
characterL: string;
characterHConfidence: number;
characterMConfidence: number;
characterLConfidence: number;
location: Quadrilateral;
}
- Android
- iOS
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT