从摄像头到 Word:一个支持实时识别、截图热键、图片拖拽的桌面 OCR 工具设计与实现

摄像头识别说明

功能介绍

  摄像头识别模块用于从实时摄像头画面、截图区域或拖拽图片中提取文字,适用于现场取字、屏幕取字、图片补录等场景。

1. 功能定位

  • 面向“实时画面 + 截图 + 图片拖拽”的统一文字识别。
  • 提供预览、区域选择、参数调节、识别结果复制与导出能力。
  • 识别结果按行展示,支持逐行复制与一键复制。
  • 支持嵌入主界面 Tab 使用,也可作为独立弹窗使用。

2. 核心能力

  • 支持“开启摄像头”后实时预览并抓拍识别(按钮:`开始识别`)。
  • 支持截图识别(按钮与快捷键 `Alt+W`),识别成功后自动复制文本并弹系统托盘提示。
  • 支持将本地图片拖拽到页面进行识别。
  • 支持结果导出为 Word(`.docx`)。
  • 支持参数调节(亮度、对比度、噪点、锐化)和一键恢复默认。
  • 支持预览旋转 `90°`、缩放、平移与识别区域框选。
  • 提供识别统计:字数、行数、耗时、速度、来源、状态。

3. 输入与格式

  • 摄像头输入:系统可用摄像头设备。
  • 图片拖拽输入:`.png`、`.jpg`、`.jpeg`、`.bmp`、`.tif`、`.tiff`、`.webp`。
  • 截图输入:用户框选屏幕区域。
  • 输出格式:按文本行组织的纯文本结果,可复制或导出为 `.docx`。

4. 三条识别链路说明

4.1 开始识别(摄像头抓拍)

  • 从当前摄像头帧读取画面。
  • 先应用图像参数调节,再按当前预览旋转角度同步旋转识别图像。
  • 根据预览中的选择框进行裁剪,仅识别选区。
  • 进入 OCR 线程异步识别并回填结果。

4.2 截图识别 / Alt+W

  • 两者走同一识别链路。
  • 启动截图覆盖层,支持鼠标框选,`Esc` 或右键取消。
  • 对高 DPI 场景做了像素映射处理,避免选区偏移。
  • 截图识别默认启用“自动复制结果”,成功后弹托盘通知。

4.3 拖拽图片识别

  • 支持拖拽本地图片文件进入页面。
  • 图片会先做参数调节后进入 OCR。
  • 当前版本不再额外套用摄像头预览旋转角度,避免上传图片识别方向被错误旋转。

5. 预览与交互

  • 默认预览方向为 `90°`(可继续点击“旋转90°”循环切换方向)。
  • 鼠标滚轮缩放预览,双击重置缩放。
  • 按住空格键可拖动画面平移。
  • 可通过拖拽/缩放选区控制识别区域,抓拍识别会按该区域裁剪。
  • 参数面板可折叠/展开,便于在小屏场景中节省空间。

6. 结果区能力

  • 按行展示识别结果,每行支持“复制”。
  • 支持“一键复制”全部结果。
  • 支持“清除”结果区内容。
  • 支持“导出Word”,默认保存到系统桌面(不可用时回退到用户目录)。

7. 状态与提示

  • 识别中显示加载动画并锁定主要操作按钮,结束后恢复。
  • 状态栏显示:`字数 | 行数 | 耗时 | 速度 | 来源 | 状态`。
  • 常见异常提示包括:未开启摄像头、抓拍失败、截图失败、OCR 引擎缺失、图片读取失败等。

8. 平台与热键

支持 Windows 与 macOS。
- `Alt+W` 全局热键:
  - Windows:通过系统原生 `RegisterHotKey` 注册。
  - macOS:通过 `pynput` 监听实现,需在系统“辅助功能”中授权。

9.页面ui展示

image

posted @ 2026-08-20 16:33  初夏_雨露  阅读(16)  评论(0)    收藏  举报