Flutter文档阅读与OCR及MRZ识别插件flutter_document_reader_core_ocrandmrz的使用

Flutter文档阅读与OCR及MRZ识别插件flutter_document_reader_core_ocrandmrz的使用

Regula Document Reader SDK允许您读取各种类型的识别文档,如护照、驾照、身份证等。所有处理都在您的设备上完全离线进行,没有任何数据离开您的设备。

文档

详细的文档可以在这里找到:Regula官方文档

示例应用程序

您可以从以下链接获取示例应用程序:GitHub上的DocumentReader-Flutter

完整示例Demo

为了更好地理解如何在Flutter项目中集成和使用flutter_document_reader_core_ocrandmrz插件,下面提供了一个简单的示例代码片段。请注意,实际应用中需要根据具体需求调整配置和权限设置。

import 'package:flutter/material.dart';
import 'package:flutter_document_reader_core/flutter_document_reader_core.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _scanResult = 'Unknown';

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    // Initialize the plugin with your license key (if needed)
    await FlutterDocumentReaderCore.initialize('YOUR_LICENSE_KEY');

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;
  }

  Future<void> startScan() async {
    try {
      // Start scanning process
      final result = await FlutterDocumentReaderCore.startScan(
        scanMode: ScanMode.MRZ,
        documentType: DocumentType.PASSPORT,
      );

      setState(() {
        _scanResult = result;
      });
    } catch (e) {
      print("Failed to perform scan: $e");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text('Scan Result: $_scanResult\n'),
              ElevatedButton(
                onPressed: startScan,
                child: Text('Start Scan'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter文档阅读与OCR及MRZ识别插件flutter_document_reader_core_ocrandmrz的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter文档阅读与OCR及MRZ识别插件flutter_document_reader_core_ocrandmrz的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成和使用flutter_document_reader_core_ocrandmrz插件的详细步骤和代码示例。该插件用于文档阅读、OCR(光学字符识别)以及MRZ(机器可读区域)识别。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加对flutter_document_reader_core_ocrandmrz插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_document_reader_core_ocrandmrz: ^最新版本号 # 请替换为最新版本号

2. 导入插件

在你的Dart文件中导入该插件:

import 'package:flutter_document_reader_core_ocrandmrz/flutter_document_reader_core_ocrandmrz.dart';

3. 请求权限

由于该插件需要使用摄像头进行图像捕捉,因此你需要在Android和iOS上请求相应的权限。

Android

AndroidManifest.xml中添加摄像头权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

iOS

Info.plist中添加摄像头使用说明:

<key>NSCameraUsageDescription</key>
<string>App需要访问摄像头来读取文档</string>

4. 使用插件进行文档读取、OCR和MRZ识别

以下是一个完整的示例代码,展示如何使用该插件进行文档读取、OCR和MRZ识别:

import 'package:flutter/material.dart';
import 'package:flutter_document_reader_core_ocrandmrz/flutter_document_reader_core_ocrandmrz.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DocumentReaderScreen(),
    );
  }
}

class DocumentReaderScreen extends StatefulWidget {
  @override
  _DocumentReaderScreenState createState() => _DocumentReaderScreenState();
}

class _DocumentReaderScreenState extends State<DocumentReaderScreen> {
  String ocrResult = "";
  String mrzResult = "";

  Future<void> startDocumentReader() async {
    try {
      // 启动文档阅读器
      var result = await FlutterDocumentReaderCoreOcrAndMrz.startDocumentReader();

      // 处理OCR结果
      if (result != null && result.containsKey("ocrResult")) {
        setState(() {
          ocrResult = result["ocrResult"]!;
        });
      }

      // 处理MRZ结果
      if (result != null && result.containsKey("mrzResult")) {
        setState(() {
          mrzResult = result["mrzResult"]!;
        });
      }
    } catch (e) {
      print("Error: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Document Reader Example"),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Text("OCR Result:", style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
            Text(ocrResult, style: TextStyle(fontSize: 16)),
            SizedBox(height: 20),
            Text("MRZ Result:", style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold)),
            Text(mrzResult, style: TextStyle(fontSize: 16)),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: startDocumentReader,
              child: Text("Start Document Reader"),
            ),
          ],
        ),
      ),
    );
  }
}

5. 运行应用

确保你已经正确配置了所有依赖和权限,然后在你的开发环境中运行应用。在点击按钮后,应该会启动文档阅读器,并在识别完成后显示OCR和MRZ的结果。

注意事项

  • 确保你已经正确配置了插件的依赖和权限。
  • 在实际使用中,你可能需要根据具体需求对UI和逻辑进行调整。
  • 插件的具体API可能会随着版本更新而变化,请参考官方文档以获取最新信息。
回到顶部