Skip to content

Stephen-abc/Desktop-OCR-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

本地便捷OCR截图工具

这是一个基于 Python 和 RapidOCR 的本地离线 OCR 截图识别工具。工具提供系统托盘、全局快捷键(按鼠标中键)及资源管理器右键菜单快捷调用功能。

主要特性

  • 离线识别:基于 rapidocr_onnxruntime,完全本地运算,保护隐私,无网络延迟。
  • 全局快捷键:支持按下鼠标中键直接触发截图识别(可在保留系统默认中键手势的同时独立工作)。
  • 右键菜单集成:支持在任意文件夹右侧空白处通过右键菜单调用。
  • 自定义配置:通过系统托盘可灵活配置。
  • 自动复制:截取文字后自动识别并复制到剪贴板,随后弹出通知提示。
  • 多线程UI处理:采用异步队列模式解决 tkinter UI 线程冲突问题,稳定且可连续多次调用。

环境要求

如果需要基于源码运行或进行二次开发,请配置以下环境:

  • 操作系统:Windows 10/11
  • Python 版本:3.8+ (推荐 3.12)
  • 依赖安装:
    pip install -r ocr_tool/requirements.txt

目录结构说明

  • ocr_tool/main.py: 程序主入口,负责处理全局任务队列和派发截图任务。
  • ocr_tool/ocr_engine.py: OCR识别引擎(RapidOCR)的封装与单例管理。
  • ocr_tool/screenshot.py: 截图区域选择UI (基于 Tkinter 制作的全屏透明遮罩)。
  • ocr_tool/hotkey.py: pynput 鼠标/键盘全局钩子监听。
  • ocr_tool/tray_icon.py: pystray 系统托盘图标维护与菜单。
  • ocr_tool/context_menu.py: 注册表操作,用于写入/删除 Windows 资源管理器右键快捷菜单。
  • ocr_tool/clipboard.py & toast.py: 剪贴板读写与 Windows 系统通知(Toast)实现。
  • dist/OCR截图工具/: 使用 PyInstaller 编译生成的最终可执行文件及打包依赖。

如何使用

方式一:下载release里的zip文件

解压后,点击根目录下的【运行】快捷方式即可

方式二:运行编译版

进入 dist/OCR截图工具/ 目录,双击运行 OCR截图工具.exe。启动后会在系统右下角托盘生成一个图标。

方式三:源码运行(最新版停用)

在项目根目录双击执行 run.bat,或者在终端中运行:

python ocr_tool/main.py

功能演示

  1. 系统托盘:系统任务栏右下角找到本程序的图标,右键可进行设置、开关启动项等操作。
  2. 快捷触发:点击鼠标中键(滚轮按下)进入截图模式,鼠标左键框选文字区域后松开,即可自动离线识别并复制文字到剪贴板。
  3. 右键启动:即使没有在后台挂起运行,在桌面或文件夹空白处右键选择“使用 LocalOCRTool 截图提取文字”,会立刻作为一次性任务唤起截图提取。

重新打包说明

如对源码进行了修改并需要重新打包,请在项目根目录下利用随附的 .spec 文件进行构建(已解决隐藏控制台和onnx模型打包等静态资源问题):

pyinstaller --noconfirm "ocr_tool/OCR截图工具.spec"

打包成功后,可在 dist 目录下看到新生成的本地执行文件环境。

About

Local convenient OCR tool

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors