基于 WPF + Tesseract 的离线 OCR 文字识别工具

前言

在线OCR工具倒是不少,但要么收费、要么限次数,最关键的是得把图片传给别人服务器,总感觉不太踏实。

本文推荐一个基于WPF和Tesseract,完全离线跑,截图就能识别,用起来挺顺手。这篇文章就围绕这个工具,聊聊它怎么用、怎么实现的,以及中间碰到的一些值得注意的地方。

项目介绍

一款基于WPF + Tesseract的离线OCR文字识别桌面工具,目前由xusheng2024维护。它最大的特点就是不需要联网,所有识别过程都在本地完成,支持中文、英文、数字的识别。

操作方式比较灵活,可以选图片文件、截屏幕区域,也可以直接把图片拖进窗口,识别出来的文字一键复制到剪贴板,适合日常处理一些零散的图片文字提取需求。

项目功能

图片输入方式

识别与输出

界面交互

项目特点

项目技术

类别

技术选型

应用框架

.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

标签:数码   离线   文字   工具   截图   图片   项目   选区   窗口   中英文   界面   功能

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight All Rights Reserved.
Powered By 71396.com 闽ICP备11008920号
闽公网安备35020302034844号

Top