如何让截图的 OCR 识别结果更准确
文字识别的好坏取决于你给它的像素。裁紧一点、保住分辨率、避开倾斜和杂乱背景,并了解它的语言限制。
OCR 进步很大,但它和人眼遵循同一条规律:清晰、平直、光线好的文字好认;压在花纹上又小又歪的文字就不行。按下 OCR 按钮前多做几个习惯动作,结果就是从干净的复制稿和一串猜测之间的差别。
裁到文字本身,而不是圈住周围
识别只作用于选区。文字周围多出来的界面元素会变成噪声:图标、边框和标签可能被误读成字符,或者把一行拆开。
- 选区只框文字块,留一点小边距,别框整个窗口。
- 两栏并排时分两次截,太宽的选区会把跨栏的行连在一起。
- 只要一个值,就把这个值和它的标签一起裁下来。
保住分辨率
OCR 需要像素。一张为了塞进聊天窗口而缩小的截图,可能已经小到读不出来。
- 在 100% 或更高的缩放下截图,而不是先把页面缩小。
- 在 Retina 屏幕上截到的是物理像素,这会有帮助。
- 如果来源是视频或照片,截取前先暂停或放大;不要把模糊的图放大来指望 OCR 恢复细节。
避免倾斜和透视变形
斜着走的文字行更难切分。对屏幕的照片,先用编辑器的裁剪视图把图摆正再识别。截图里的文字本来就是水平的,之后不要再旋转它。
给文字足够的对比度
OCR 靠边缘区分字符。遇到下面这些情况它会吃力:
- 白底上的浅灰字,或黑底上的深灰字。
- 文字后面是照片或渐变。
- 高亮或标注盖住了行的一部分。
对比度不好时,回到状态更好的画面重新截取。也可以把行周围杂乱的背景裁掉,只留下文字和一条干净的底。
了解语言限制
InSnap 的 OCR 在本机运行,中文、英文以及拉丁字母语言(含带重音符号的字符)都处理得很好。日文假名、韩文和俄文不能可靠识别;遇到这些文字,不要承诺能拿到干净的复制稿。艺术字体、手写和装饰性字体同样不在它擅长的范围内。
如果文档混用多种语言,只对需要的那部分跑 OCR,并核对结果,而不是假设整块都对。
留意长得像的字符
再好的 OCR 也会混淆:
| 容易混淆 | 例子 | |
|---|---|---|
| 数字零和字母 O | 0 与 O | |
| 数字一、小写 l、竖线 | 1 与 l 与 ` | ` |
| S 和 5 | S 与 5 | |
| 逗号和句点 | 1,000 与 1.000 |
对编号、订单号、代码和价格,把复制出来的文字和图片对一遍。发票号里错一位数字,比重新打这一行麻烦得多。

识别前的检查清单
| 检查 | 原因 |
|---|---|
| 文字是平直的吗? | 倾斜会破坏行切分 |
| 屏幕上的字够大吗? | OCR 需要像素 |
| 背景干净吗? | 花纹会变成噪声 |
| 对比度够强吗? | 边缘决定字符 |
| 语言支持吗? | 假名、韩文和俄文不可靠 |
| 只裁了一个文字块吗? | 分栏和混杂界面会干扰排版判断 |
常见问题
为什么明明看得清的一行,OCR 却漏掉了?
这一行可能太小、有倾斜、对比度低,或者用了识别器支持不好的文字。裁近一点、在更高缩放下截取,并确认语言是否受支持。
OCR 能读屏幕照片里的文字吗?
有时可以,前提是照片清晰、文字平直。透视和反光通常会影响准确率;先用编辑器把图摆正、裁紧,再运行 OCR。
OCR 能离线用吗?
可以。识别在你的电脑上运行,文字留在本机。代价是模型只支持有限几种文字,具体见上面的语言限制。


