之所以会用到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. [转帖]Kafka需要知道的一些基础知识点

    https://blog.csdn.net/daima_caigou/article/details/109101405 前言 kafka是常用MQ的一种,站在使用者的角度来看待,kafka以及所有的 ...

  2. [转帖]Jmeter创建简单的HTTP(S)请求测试-3

    在上一章节中,介绍了Jmeter基本的组成组件,那么我们如何使用这些组件去完成测试呢,以下将通过创建一个简单的HTTP(S)测试进行说明,另外,除JDBC请求外,Jmeter进行测试构建的步骤大同小异 ...

  3. 多个物理磁盘挂载到同一目录的方法 (lvm 软raid)

    多个物理磁盘挂载到同一目录的方法 (lvm 软raid) 背景 公司里面的一台申威3231的机器 因为这个机器的raid卡没有操作界面. 所以只能够通过命令行方式创建raid 自己这一块比较菜, 想着 ...

  4. 【转帖】训练中文LLaMA大规模语言模型

    https://zhuanlan.zhihu.com/p/612752963?utm_id=0 https://github.com/CVI-SZU/Linly​github.com/CVI-SZU/ ...

  5. Linux 清理 防火墙已有IP地址的方法

    最简单的处理 for i in `firewall-cmd --zone=trusted --list-sources` ;do firewall-cmd --zone=trusted --remov ...

  6. It is currently in use by another Gradle instance

    FAILURE: Build failed with an exception. * What went wrong: Could not create service of type TaskHis ...

  7. 02uni-app v-for循环列表 v-if的使用

    onLoad onShow onHide函数的使用## 这三个函数的使用 // 监听页面的加载 参数e是上一个页面传递过来的参数 参数是一个对象 如果没有为空{} onLoad(e) { consol ...

  8. 【分享代码片段】terraform中,如何从刚刚创建的 deployment 中获得所有容器的名字和 ip

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 不好意思,刚刚才开始用 terraform,或许是更好的办 ...

  9. vim 从嫌弃到依赖(10)——缓冲区列表

    之前的一系列文章主要介绍了vim文本相关的操作,并且也介绍了vim的几种模式.通过前面的内容,相信各位小伙伴们已经对vim有了一个基本的了解,同时也能够使用vim快速编辑文本,从这篇开始,我们将要介绍 ...

  10. 解决Edge浏览器提示“此网站已被人举报不安全”

    今天下午微软旗下的 Microsoft Edge 浏览器将百度搜索的跳转域名 (*.baidu.com/link?url=*) 封杀,百度搜索首页可以打开,但搜索任何关键词点击搜索结果都会被拦截. 当 ...