# my_ocr_demo **Repository Path**: luodewen/my_ocr_demo ## Basic Information - **Project Name**: my_ocr_demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-09 - **Last Updated**: 2025-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OCR 文字识别应用 一个基于 Flutter 开发的移动端OCR文字识别应用,支持拍照和相册选择图片进行文字识别。 ## 功能特性 ### 📸 拍照识别 - 实时相机预览 - 一键拍照功能 - 自动跳转到OCR识别页面 ### 🖼️ 相册识别 - 从相册选择图片 - 支持多种图片格式 ### ✂️ 智能裁剪 - 全屏图片显示 - 可缩放、平移图片 - 自由调整裁剪区域 - 实时预览裁剪效果 ### 🔍 OCR识别 - 基于 Google ML Kit 的中文文字识别 - 高精度识别结果 - 实时处理反馈 ## 技术栈 - **Flutter**: 跨平台移动应用开发框架 - **Google ML Kit**: 文字识别引擎 - **crop_your_image**: 图片裁剪库 - **camera**: 相机功能 - **image_picker**: 图片选择器 - **flutter_easyloading**: 加载提示 ## 项目结构 ``` lib/ ├── main.dart # 应用入口和首页 ├── camera_page.dart # 相机拍照页面 ├── unified_ocr_page.dart # OCR识别主页面 ├── ocr_service.dart # OCR识别服务 └── test_ocr_page.dart # OCR测试页面 ``` ## 主要页面 ### 首页 (main.dart) - 提供拍照和相册两个入口 - 简洁的UI设计 ### 相机页面 (camera_page.dart) - 实时相机预览 - 圆形拍照按钮 - 拍照后自动跳转到OCR页面 ### OCR识别页面 (unified_ocr_page.dart) - 全屏图片显示 - 可缩放和拖拽图片 - 自由调整裁剪区域 - OCR识别按钮在AppBar中 - 识别结果以对话框形式展示 ## 核心功能实现 ### 图片尺寸获取 ```dart Future _loadImageSize() async { final codec = await ui.instantiateImageCodec(widget.imageData); final frame = await codec.getNextFrame(); _imageSize = Size(frame.image.width.toDouble(), frame.image.height.toDouble()); } ``` ### OCR识别服务 ```dart Future recognizeTextFromBytes(Uint8List imageBytes) async { // 保存为临时文件进行识别 final tempFile = File('${tempDir.path}/temp_image.png'); await tempFile.writeAsBytes(imageBytes); return await recognizeText(tempFile.path); } ``` ### 智能裁剪 - 使用 `crop_your_image` 库实现 - 支持自由比例裁剪 - 内置手势处理避免冲突 ## 安装和运行 1. 确保已安装 Flutter SDK 2. 克隆项目到本地 3. 安装依赖: ```bash flutter pub get ``` 4. 运行应用: ```bash flutter run ``` ## 平台支持 - ✅ Android - ✅ iOS - ✅ macOS - ✅ Windows - ✅ Linux - ✅ Web ## 依赖包 ```yaml dependencies: flutter: sdk: flutter camera: ^0.10.5+9 image_picker: ^1.0.7 google_mlkit_text_recognition: ^0.12.0 crop_your_image: ^2.0.0 flutter_easyloading: ^3.0.5 ``` ## 使用说明 1. **拍照识别**:点击首页的"拍摄"按钮,进入相机页面拍照 2. **相册识别**:点击首页的"相册"按钮,选择图片 3. **调整区域**:在OCR页面中拖拽图片和调整裁剪框 4. **开始识别**:点击AppBar中的OCR按钮进行文字识别 5. **查看结果**:识别结果会在对话框中显示 ## 特色功能 - 🎯 **精确裁剪**:支持自由调整裁剪区域,提高识别精度 - 🔄 **实时预览**:裁剪过程中实时预览效果 - 📱 **手势优化**:避免与系统手势冲突 - ⚡ **高效处理**:直接使用Uint8List传递图片数据 - 🎨 **现代UI**:简洁美观的用户界面 ## 开发说明 项目采用模块化设计,每个功能都有独立的服务类,便于维护和扩展。OCR识别服务支持多种输入格式,图片裁剪使用专业的第三方库,确保功能的稳定性和用户体验。