之所以会用到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. 人大金仓学习之一_kwr的简单学习

    人大金仓学习之一_kwr的简单学习 摘要 周末在家想着学习一下数据库相关的内容. 网上找了不少资料, 想着直接在本地机器上面进行一下安装与验证 理论上linux上面应该更加简单. windows 上面 ...

  2. [转帖]分享一个Navicat16最新版永久试用的办法

    https://zhuanlan.zhihu.com/p/614621302 新建bat,就叫 navicat无限试用.bat @echo off echo Delete HKEY_CURRENT_U ...

  3. [转帖]Native Memory Tracking 详解(4):使用 NMT 协助排查内存问题案例

    https://www.modb.pro/db/557714 从前面几篇文章,我们了解了 NMT 的基础知识以及 NMT 追踪区域分析的相关内容,本篇文章将为大家介绍一下使用 NMT 协助排查内存问题 ...

  4. 学习: Linux的 date 命令

    date 命令非常好用 多用 date --h 还是非常好的 获取 今天是今年的第多少天 最简单的办法 就是 date +%j 以后需要多学习 多利用 linux的帮助才可以呢. Usage: dat ...

  5. Docker容器基础入门认知-Namespce

    在使用 docker 之前我一般都认为容器的技术应该和虚拟机应该差不多,和虚拟机的技术类似,但是事实上容器和虚拟机根本不是一回事. 虚拟机是将虚拟硬件.内核(即操作系统)以及用户空间打包在新虚拟机当中 ...

  6. axios取消请求

    为什么会有取消请求-文件上传 比如有这样的场景,在一个弹窗中有文件上传. 当用户进行文件上传的时候,发现不想进行文件上传了,又点击了弹窗中的取消. 那么是不是应该去取消本次的上传操作,此时就需要使用取 ...

  7. elementui出现展开后子菜单宽度多出1px问题

    添加 就可以解决了 .el-menu { border-right-width: 0; } <template> <div class="compen-left-men&q ...

  8. Gin 项目引入热加载

    目录 一.什么是热加载 二.Air 2.1 介绍 2.2 特性 特性: 2.3 相关文档 2.4 安装 推荐使用 install.sh 使用 go install 2.5 配置环境变量 2.6 使用 ...

  9. Keepalive-Haproxy高可用介绍

    假设我们现在开发了一个应用应用的端口号为 8080,这个应用我们想让它去实现一个负载均衡的访问,就是说我们有两台服务器都部署了我们的 8080 应用,我们想让它一会访问 ip 为: 192.168.0 ...

  10. 做知识图谱遇到的环境问题合集【spacy、gensim、keras_contrib等】

    1.python:spacy.gensim库的安装遇到问题及bug处理 见: python:spacy.gensim库的安装遇到问题及bug处理_汀.的博客-CSDN博客1.spacySpaCy最新版 ...