在线OCR工具倒是不少,但要么收费、要么限次数,最关键的是得把图片传给别人服务器,总感觉不太踏实。
本文推荐一个基于WPF和Tesseract,完全离线跑,截图就能识别,用起来挺顺手。这篇文章就围绕这个工具,聊聊它怎么用、怎么实现的,以及中间碰到的一些值得注意的地方。
一款基于WPF + Tesseract的离线OCR文字识别桌面工具,目前由xusheng2024维护。它最大的特点就是不需要联网,所有识别过程都在本地完成,支持中文、英文、数字的识别。
操作方式比较灵活,可以选图片文件、截屏幕区域,也可以直接把图片拖进窗口,识别出来的文字一键复制到剪贴板,适合日常处理一些零散的图片文字提取需求。
图片输入方式
手动选择图片文件,支持PNG、JPG、JPEG、BMP格式
屏幕截图,框选任意区域自动识别
拖拽图片到软件窗口,松手即识别
识别与输出
中英文及数字离线识别,无需网络
识别结果一键复制到剪贴板
清空当前图片和结果,快速切换处理下一张
界面交互
左侧显示图片,右侧展示识别文本
拖拽时窗口有视觉反馈(边框和背景色变化)
顶部工具栏集中放置所有操作按钮
完全离线运行,不依赖任何网络服务,数据不上传
基于Tesseract 5.2引擎,识别速度和准确率在离线方案里表现不错
MVVM架构设计,界面和业务逻辑分离,后期改动和扩展都比较方便
截图功能集成在应用内,不用切到其他截图工具再粘贴
一键复制结果,省掉手动选中文本再Ctrl+C的步骤
| 类别 | 技术选型 |
|---|---|
| 应用框架 | .NET 8.0 WPF |
| MVVM框架 | CommunityToolkit.Mvvm |
| OCR引擎 | Tesseract 5.2 |
| 图像处理 | System.Drawing.Common |
| 界面语言 | XAML + C# |
| 架构模式 | MVVM(Model-View-ViewModel) |
语言训练数据方面,项目使用了Tesseract的tessdata包,中英文分别对应chi_sim.traineddata和eng.traineddata,放在Resources/tessdata目录下。如果只需要识别英文,只放eng那个文件也行,按需下载就好。
整个项目的目录结构比较清晰,按功能模块分好了文件夹:
OcrTool/
├── App.xaml # 应用入口,全局样式放这里
├── MainWindow.xaml # 主窗口界面
├── MainWindow.xaml.cs # 拖拽事件的后台逻辑
├── OcrTool.csproj # 项目配置
├── ViewModels/
│ └── MainViewModel.cs # 核心业务逻辑
├── Services/
│ ├── OcrService.cs # Tesseract封装,真正的识别干活的地方
│ ├── ScreenCapture.cs # 屏幕截图服务
│ ├── CaptureForm.xaml # 截图选区窗口
│ └── CaptureForm.xaml.cs # 选区交互逻辑
├── Converters/
│ ├── NullToVisibilityConverter.cs
│ ├── DragOverBrushConverter.cs
│ └── DragOverBorderConverter.cs
└── Resources/
└── tessdata/
├── chi_sim.traineddata
└── eng.traineddata
代码里比较有意思的一个地方是截图功能的实现。点击截图按钮后,整个屏幕变暗,出现一个选区框,用户按住鼠标拖拽确定区域,松手就完成截图并触发识别。这个过程中,CaptureForm窗口是全屏且半透明的,中间的高亮选区通过计算鼠标起始点和终点动态绘制。
编译运行也很简单:
dotnet build
dotnet run
用Visual Studio的话,直接打开项目按F5就行。不过首次运行前,记得把语言训练数据包放到Resources/tessdata里,不然Tesseract没法工作。
实际使用下来,中英文混合识别的准确率还不错,尤其是白底黑字的截图或者清晰印刷体,基本能全对。截图功能响应很快,从按下按钮到完成识别,整个过程挺流畅。
界面走的是简洁路线,没有花里胡哨的装饰,左侧放图右侧放结果,一目了然。拖拽图片时边框会变颜色,这个细节提示感不错,不会让用户疑惑"到底拖没拖进去"。

需要留意的是,如果图片分辨率太低或者文字太模糊,识别结果会有缺字漏字的情况,这是OCR的通病,不是工具本身的问题。另外第一次加载Tesseract引擎时会有一点延迟,后面就快了。
Gitee:https://github.com/orangebook-liu/WPF-Tesseract-OCR
感觉是个实用的小工具,没有堆砌花哨的功能,把图片文字识别这件事做得挺到位。离线、截图、拖拽、一键复制这几个核心操作覆盖了日常最常用的场景。如果你对数据隐私有要求,不想把图片传到云端识别,或者偶尔需要离线处理一些图片文字,这个工具值得试试。
当然它也有局限性,目前主要支持中英文和数字,对繁体中文、日文韩文等其他语言还没做适配。另外复杂排版或艺术字体的识别效果会打折扣。但对于大多数文档截图、表格拍照这种场景,它完全够用了。
更新时间:2026-07-21
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight All Rights Reserved.
Powered By 71396.com 闽ICP备11008920号
闽公网安备35020302034844号