Go to file
Yuanzq 4f4ce1b55c First commit 2025-12-16 15:44:30 +08:00
app First commit 2025-12-16 15:44:30 +08:00
gradle/wrapper First commit 2025-12-16 15:44:30 +08:00
.gitignore First commit 2025-12-16 15:44:30 +08:00
README.md First commit 2025-12-16 15:44:30 +08:00
build.gradle.kts First commit 2025-12-16 15:44:30 +08:00
gradle.properties First commit 2025-12-16 15:44:30 +08:00
gradlew First commit 2025-12-16 15:44:30 +08:00
gradlew.bat First commit 2025-12-16 15:44:30 +08:00
settings.gradle.kts First commit 2025-12-16 15:44:30 +08:00

README.md

OCR 机具编码识别 APP (OCR Equipment Code Scanner)

这是一款专为电力机具管理设计的 Android 应用程序,旨在通过 OCR 技术高效识别和管理设备编码。该应用集成了 CameraX 相机控制、离线/在线 OCR 识别、本地数据库存储以及数据统计分析功能。

核心功能

  • 高级相机控制:
    • 点击对焦 (Tap-to-Focus): 支持屏幕点击手动对焦,确保拍摄清晰。
    • 双指缩放 (Pinch-to-Zoom): 支持双指捏合手势进行变焦,轻松捕捉远处的编码。
    • 自定义裁剪框: 界面提供可视化裁剪框,精准定位识别区域,提升 OCR 准确率。
    • 防抖拍摄: 拍摄按钮增加防抖逻辑,防止重复误触。
  • OCR 智能识别:
    • 集成高效 OCR 接口,快速识别机具上的文本编码。
    • 自动格式化处理(自动去除多余连字符、噪点数据)。
    • 友好的中文提示: 网络异常或识别失败时,提供清晰的中文报错(如“服务器连接失败,请检查网络”、“请正确拍摄编码设备”)。
  • 数据全生命周期管理:
    • 本地历史记录: 使用 Room 数据库本地存储所有扫描记录。
    • 搜索与筛选: 支持按类别或日期快速检索历史数据。
    • 数据统计看板: 可视化展示识别准确率和各类别的分布情况。
  • 个性化定制:
    • 机具类别管理: 支持用户添加、编辑、删除自定义机具类别(如“卡线器”、“滑车”等)。
    • 智能校验: 类别名称限制 7 字以内,并具备唯一性校验,防止重复添加。

🛠 技术栈

  • 开发语言: Kotlin
  • UI 框架: Jetpack Compose (Material3)
  • 依赖注入: Hilt
  • 本地数据库: Room
  • 网络框架: Retrofit + OkHttp
  • 相机库: CameraX
  • 图片加载: Coil
  • 异步处理: Coroutines + Flow

🚀 快速开始

环境要求

  • Android Studio Ladybug 或更新版本。
  • JDK 17 或更高版本。
  • Android 真机需支持相机功能Min SDK 24+)。

构建与运行

  1. 克隆仓库:
    git clone <repository-url>
    
  2. 打开项目: 使用 Android Studio 打开项目根目录。
  3. 同步依赖: 等待 Gradle Sync 完成所有依赖下载。
  4. 真机调试: 连接 Android 手机,点击工具栏上的 Run 按钮(绿色三角形)安装运行。

📖 使用指南

  1. 扫描识别:
    • 将手机对准机具编码,使编码位于屏幕中央的白色取景框内。
    • 如有需要,点击屏幕对焦或双指缩放。
    • 点击底部的 相机按钮 拍照识别。
  2. 结果确认:
    • 查看识别到的编码和自动匹配的类别。
    • 手动修正: 如果识别有误,点击“手动修正”进行编辑。
    • 确认提交: 确认无误后,点击“确认提交”保存记录。
  3. 类别管理:
    • 在拍摄页面的类别下拉菜单中,选择“添加自定义类别”。
    • 输入类别名称最多7个字不可重复点击添加。
    • 可点击下拉列表中类别旁的编辑/删除图标进行管理。

📂 项目结构

  • ui/: 界面层,包含所有页面 (Camera, Result, History) 和 ViewModels。
  • data/: 数据层,包含 API 服务、Database 实体和 Repository。
  • util/: 工具类,包含图片处理 (ImageProcessor) 和扩展函数。

注意: 本项目依赖后端 OCR 服务接口。请在 OcrAppModule.ktRetrofit 配置中检查 API 地址配置。