之所以会用到OCR工具,是因为在看一些扫描版的PDF文档时,有时候需要复制粘贴一些文字,特别是技术性文档,对于一些命令或者代码片段需要复制出来执行验证。

网络上有许多推荐OCR工具的文章,但是大多数都是厂商软文,而且都需要付费。本人在经过实际使用之后认为有2款开源免费的工具非常不错,推荐给大家。

特别说明: 既然是开源免费的工具,在识别准确率上应该是不如商业软件的,如果介意的就不用看了。

ShareX

ShareX是一个瑞士军刀般的小工具,之前主力使用的功能是屏幕截图。

其实它一直有一个OCR功能对于文本识别的正确率也非常高,对于不愿意折腾的人来说使用它进行OCR识别就足够了。

关于安装非常简单,不再赘述。

在最新版的ShareX 15.0版本中,使用其OCR功能截图下:

实际使用示例如下图:

对于我自己的需求而言,这样的识别准确率已经足够了。

textshot

textshot也是一个开源的OCR工具,工具本身是基于Python写的,所以需要机器上安装有Python3环境。

关于Python的下载和安装详见这里,不再赘述。

安装好Python3语言环境之后,使用pip3命令安装textshot。

pip3 install textshot

安装好textshot之后还不能直接使用(在Windows控制台执行textshot命令不会有任何效果),因为它依赖tesseract,所以还需要继续下载并安装Tesseract,这个安装过程有点漫长,需要耐心等待。

安装完毕tesseract之后,需要将其安装路径添加到环境变量PATH中。

上述准备工作都结束之后,打开一个新的Windows控制台,输入textshot命令,鼠标就会变成十字形,此时就可以开始截图并识别文本了,按Esc键可以退出。

实际使用示例如下图:

这种需要打开Windows控制台再输入命令启动textshot的方式非常不友好,所以可以借助AutoHotkey来设置快捷键。

使用AutoHotkey设置快捷键需要编写脚本,关于启动textshot的脚本在其代码库中有一个现成的示例:textshot.ahk,其内容如下:

#NoEnv
SetWorkingDir %A_ScriptDir% ; Bind the script to Win + Ctrl + S; modify as needed
#^s::
; Run Python w/o a window in a virtual environment in .venv
; Modify the command as needed, e.g. if not using a virtual environment
Run, .\.venv\Scripts\textshotw.exe
Return

我这边根据自己的实际环境情况做了一个修改,内容修改为:

#NoEnv
SetWorkingDir %A_ScriptDir% ; Bind the script to Win + Ctrl + S; modify as needed
#^s::
; Run Python w/o a window in a virtual environment in .venv
; Modify the command as needed, e.g. if not using a virtual environment
Run, textshot
Return

脚本内容含义解读:

  • #^s::,设置快捷键为Ctrl+Win+S
  • Run, textshot,执行textshot命令

然后将textshot.ahk的默认打开方式修改为AutoHotkeyU64.exe。

经过上述设置之后,只需要按快捷键Ctrl+Win+S就可以开始textshot截图了。

但是在我使用这种通过快捷键打开textshot的方式时,会弹出一个Windows控制台窗口,有时候这个窗口会遮盖我需要截图的区域,有一些不方便。

解决办法:在这个窗口弹出来,鼠标指针未变成十字形之前,把窗口拖到一边,这样就不再有任何影响了。

【参考】

https://zhuanlan.zhihu.com/p/35379309 Windows 自动化效率神器:AutoHotkey 使用教程和脚本推荐

http://www.cleartechfei.com/2021/03/ahk脚本-基本用法/ AHK脚本-基本用法

好用的OCR文本识别工具的更多相关文章

  1. 个人永久性免费-Excel催化剂功能第86波-人工智能之图像OCR文本识别全覆盖

    在上一年中,Excel催化剂已经送上一波人工智能系列功能,鉴于部分高端用户的需求,再次给予实现了复杂的图像OCR识别,包含几乎所有日常场景,让公司个人手头的图像非结构化数据瞬间变为可进行结构化处理分析 ...

  2. 用OCR文字识别工具来审阅和处理PDF内容

    "工作的时候要同时打开好几个软件真的是太不方便了."很多公司白领都有这样的困扰.他们抱怨着进行文字识别过后又要打开文档编辑器来进行编辑.PDF是办公文档常用的格式, ABBYY F ...

  3. OCR文字识别软件 怎么识别包含非常规符号的文本

    ABBYY FineReader 12 是一款OCR图文识别软件,可快速方便地将扫描纸质文档.PDF文件和数码相机的图像转换成可编辑.可搜索的文本,有时文本中可能会包含一些非常规的符号,此时ABBYY ...

  4. Android OCR文字识别 实时扫描手机号(极速扫描单行文本方案)

    身份证识别:https://github.com/wenchaosong/OCR_identify 遇到一个需求,要用手机扫描纸质面单,获取面单上的手机号,最后决定用tesseract这个开源OCR库 ...

  5. 用深度学习做命名实体识别(二):文本标注工具brat

    本篇文章,将带你一步步的安装文本标注工具brat. brat是一个文本标注工具,可以标注实体,事件.关系.属性等,只支持在linux下安装,其使用需要webserver,官方给出的教程使用的是Apac ...

  6. OCR场景文本识别:文字检测+文字识别

    一. 应用背景 OCR(Optical Character Recognition)文字识别技术的应用领域主要包括:证件识别.车牌识别.智慧医疗.pdf文档转换为Word.拍照识别.截图识别.网络图片 ...

  7. CVPR2020论文解读:OCR场景文本识别

    CVPR2020论文解读:OCR场景文本识别 ABCNet:  Real-time Scene Text Spotting with Adaptive Bezier-Curve Network∗ 论文 ...

  8. 如何用OCR图文识别软件在文档里复制内容

    ABBYY FineReader 12是一款OCR图文识别软件,可从文档中复制文本.图片和表格,粘贴到其他应用程序中.无需识别整个文档(关于ABBYY FineReader识别文档的文章,请参考解析A ...

  9. OCR文字识别软件许可文件被误删了怎么办

    使用任何一款软件,都会有误操作的情况发生,比如清理文件时一不小心删除了许可文件,对于ABBYY FineReader 12这样一款OCR文字识别软件,因失误错误删除了许可文件该怎么办呢?今天就来给大家 ...

  10. 6 个优秀的开源 OCR 光学字符识别工具

    转自:http://sigvc.org/bbs/thread-870-1-1.html 纸张在许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显 ...

随机推荐

  1. [转帖]《Linux性能优化实战》笔记(五)—— 不可中断进程与僵尸进程

    一. 进程状态 1. 状态含义 从 ps或者 top 命令的输出中,可以看到处于不同状态的进程 R:Running 或 Runnable,表示进程在 CPU 的就绪队列中,正在运行或者正在等待运行 D ...

  2. [转帖]clickhouse存储机制以及底层数据目录分布

    https://www.cnblogs.com/MrYang-11-GetKnow/p/15818141.html#:~:text=%E6%AF%8F%E4%B8%80%E4%B8%AA%E6%95% ...

  3. [转帖]DBWR与LGWR的写入机制

    https://www.jianshu.com/p/6c87cb6cd320 读与写是每个数据库提供的最基本的功能.当数据库中出现第一个进程时,总免不了要将数据从磁盘上加载到内存中,一次数据库的物理I ...

  4. [转帖]正则表达式及在Jmeter中的应用

    目录 1.正则表达式 1.1 什么是正则表达式 1.2 为什么使用正则表达式 2.语法 2.1 普通字符 2.2 限定符 2.3 非打印字符 2.4 特殊字符 2.5 定位符 2.6 修饰符(标记) ...

  5. [转帖]linux服务之tuned

    https://www.cnblogs.com/createyuan/p/5701650.html RHEL/CentOS 在 6.3 版本以后引入了一套新的系统调优工具 tuned/tuned-ad ...

  6. [转帖]金仓数据库KingbaseES误删除系统超级用户(superuser)权限的恢复方式

    https://blog.csdn.net/arthemis_14/article/details/129879269 在使用KingbaseES数据库的时候,系统默认存在一个跟系统初始化用户同名的S ...

  7. K8S 知识点

    1. K8S集群大小 在 v1.7 版本中,Kubernetes 支持集群节点(node)数可达1000个.更具体地说,我们配置能够支持所有如下条件: 不超过2000个节点 不超过总共6000个 po ...

  8. 我在京东做研发 | 京东云算法科学家解析爆火的ChatGPT

    令人惊艳的ChatGPT横空出世 背后有怎样的前沿技术支撑 走向大规模产品应用又有何局限 深耕对话式AI技术十余年 京东云算法科学家将带您一同走进技术世界 解析ChatGPT的技术亮点与局限 分享下一 ...

  9. C语言中如何使两个整型变量计算出浮点型结果

    遭遇的问题 在学习时有一个课后题要求计算两个变量的加减乘除以及取余,想到除法可能会计算出小数,就用浮点型接收除法的结果 int a,b: double div; div = a / b; 但是算出来的 ...

  10. 《ASP.NET Core 与 RESTful API 开发实战》-- (第9章)-- 读书笔记(下)

    集成测试 集成测试能够确保应用程序的组件正常工作,包括应用程序支持的基础结构,如数据库和文件系统等 进行集成测试时,应为项目添加 Microsoft.AspNetCore.MvcTesting 包 它 ...