从摄像头到 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展示


浙公网安备 33010602011771号