点击上方“逆锋起笔”,关注领取学习资源

☞ 程序员进阶必备资源免费送「各种技术!」 ☜

本文转载自机器之心

这个文本 OCR 小工具,能让你「所截即所得」。

在我们办公时,是不是经常遇到图片内容转文字的需求?

你是用什么工具解决的呢?是手机自带拍照转文字功能?还是使用 QQ 里面的工具?

今天我们就为大家介绍一款 GitHub 用户 ianzhao05 刚发布的小工具——textshot,只需要截屏就能实时生成文字。读者也可以通过此项目大致了解如何对图像中的文本进行识别。

项目链接:https://github.com/ianzhao05/textshot

使用方法

运行 textshot.py,在屏幕上打开一个 overlay,在你希望提取的文字区域画一个矩形。

使用可选的命令行参数指定语言。例如,python textshot.py eng + fra 将使用英语作为主要语言,使用法语作为次要语言。默认值为英语(eng)。同时确保为其他语言安装了适用于 Tesseract 的数据文件。

建议将热键附加到此工具上。对于 Windows 来说,可以使用 AutoHotkey 脚本来完成此操作;textshot.ahk 同时也包含一个可以使用的示例 AHK 脚本。

如果是 Ubuntu 系统,可以打开「键盘设置」,其中显示了所有 Gnome 快捷方式。底部有一个「+」按钮,可用于添加你自己的快捷方式。单击并将其命令设置为 / usr / bin / python3 <path-to-textshot.py>。如果使用的是 venv,则上面的 python3 路径应指向 venv 的 python3 而不是全局 python3。

部分代码展示

如何安装

  1. 安装 Python 3;

  2. 复制 TextShot 库,并使用跳转命令 cd 进入该库;

  3. (可选项)创建一个虚拟环境,例如使用 python -m venv .venv ;

  4. 使用 pip install -r requirements.txt 安装所需的软件包;

  5. 安装 Google 的 Tesseract OCR 引擎(https://github.com/tesseract-ocr/tesseract),并通过将目录添加到系统路径来确保可以从命令行访问 tesseract。

这个实用小工具的开发也离不开谷歌经典 OCR 开源项目 Tesseract。

Tessract 的使用

Tesseract 是目前最好的用于机器打印字符识别的开源 OCR 工具。20 世纪 80 年代由 Hewlett Packard 开发,2005 年开源,自 2006 年起由谷歌赞助开发。该工具在受控条件下也能很好地运行,但是如果存在大量噪声或者图像输入 Tesseract 前未经恰当处理,则性能较差。

Tesseract OCR 引擎于 20 世纪 80 年代出现,更新迭代至今,它已经包括内置的深度学习模型,变成了十分稳健的 OCR 工具。

Tesseract 支持 Unicode(UTF-8)字符集,可以识别超过 100 种语言,还包含多种输出支持,比如纯文本、PDF、TSV 等。但是为了得到更好的 OCR 结果,还必须提升提供给 Tesseract 的图像的质量。

值得注意的是,在执行实际的 OCR 之前,Tesseract 会在内部执行多种不同的图像处理操作(使用 Leptonica 库)。通常情况下表现不错,但在一些特定的情况下的效果却不够好,导致准确度显著下降。在将图像传递给 Tesseract 之前,可以尝试以下图像处理技术,但具体使用哪些技术取决于使用者想要读取的图像:

  1. 反转图像

  2. 重新缩放

  3. 二值化

  4. 移除噪声

  5. 旋转/调整倾斜角度

  6. 移除边缘

所有这些操作都可以使用 OpenCV 或通过 Python 使用 numpy 实现。

Tesseract (v4) 最新版本支持基于深度学习的 OCR,准确率显著提高。底层的 OCR 引擎使用的是一种循环神经网络(RNN)——LSTM 网络。

中文 OCR 项目

中文 OCR,像身份证识别、火车票识别都是常规操作,它也可以实现更炫酷的功能,例如翻译笔在书本上滑动一行,自动获取完整的图像,并识别与翻译中文。

目前比较常用的中文 OCR 开源项目是 chineseocr,它基于 YOLO V3 与 CRNN 实现中文自然场景文字检测及识别,目前该项目已经有 2.5K 的 Star 量。

之前介绍过另一个开源的中文 OCR 项目,基于 chineseocr 做出改进,是一个超轻量级的中文字符识别项目。

项目地址:https://github.com/ouyanghuiyu/chineseocr_lite

该项目表示,相比 chineseocr,chineseocr_lite 采用了轻量级的主干网络 PSENet,轻量级的 CRNN 模型和行文本方向分类网络 AngleNet。尽管要实现多种能力,但 chineseocr_lite 总体模型只有 17M。目前 chineseocr_lite 支持任意方向文字检测,在识别时会自动判断文本方向。如下图所示实测效果示例:

推荐阅读

60 个相见恨晚的神器工具

有了这 4 款工具,老板再也不怕我写烂SQL了

身为 Java 程序员必须掌握的 10 款开源工具!

最佳开发工具大全,GitHub Star 6.2k+

推荐 10 个不错的网络监视工具,建议收藏!

如果你有写博客的好习惯
欢迎投稿
赞+在看,小生感恩❤️

截屏、文字提取一气呵成,超实用 OCR 开源小工具相关推荐

  1. 14个超级牛X的免费开源小工具!

    最近整理了一些在用的,感觉还不错的开源小工具,有的仅适用MacOS,但多数跨平台. Homebrew Homebrew - The missing package manager for macOS: ...

  2. Android 使用adb截屏和提取截屏图片

    截屏 adb shell screencap -p /sdcard/DCIM/screen.jpg 提取 adb pull /sdcard/DCIM/screen.jpg

  3. html在线ocr文字识别源码,OCR开源代码以及OCR公开训练测试数据集汇总

    n1 OCR开源代码网址汇总 1.1 OCRE(OCR Easy), http://lem.eui.upm.es/ocre.html 1.2 Clara OCR,http://directory.fs ...

  4. 推荐一个Python的开源小工具大合集!

    今天推荐一个python的开源项目 python写的各种小工具,涉及的知识比较多,包括pyqt5.简单的爬虫.文本匹配.计算器.二维码制作.端口扫描器等等. 开源地址 https://github.c ...

  5. 文字图片转成点阵的小工具

    无聊,写了一个小工具. 将汉字转成点阵,图片转成点阵,看下效果图: [img]http://dl.iteye.com/upload/attachment/611624/4189635f-f9e2-30 ...

  6. java开发mac pro_U1S1,这个提取人声/歌曲伴奏的小工具很好用 Neural Mix | Mac软件天堂...

    小伙伴们,感谢关注「Mac软件天堂」,遇到"XX已损坏"."XX意外退出"."无法确认开发者"等问题记得点击菜单栏的「帮助」解决哦 !同时, ...

  7. Android系统截屏功能提取

    Android在4.0版本之后同时按电源键和音量键可以截取当前屏幕,截图后会有一个过渡动画效果,这里提取了将效果这部分提取出来,可以用于应用截图分享功能. 截图功能在源码中的位置是com.androi ...

  8. java如何实现qq截屏代码_基于Java的QQ屏幕截图工具的设计

    设计一款基于Java的QQ屏幕截图软件,能实现不联网也能对屏幕截图:截图是由电脑截取显示在屏幕上或其他显示设备上的可视图像,通常截图可以由操作系统或专用截图软件截取,截取的图像会有不同种的文件格式,如 ...

  9. python自学笔记之开源小工具:SanicDB介绍

    SanicDB 是为 Python的异步 Web 框架 Sanic 方便操作MySQL而开发的工具,是对 aiomysql.Pool 的轻量级封装.Sanic 是异步IO的Web框架,同时用异步IO读 ...

最新文章

  1. python 优化加速方案
  2. python读法1002python读法-Python教程之绘制Mandelbrot集合
  3. Eclipse显示内存占用
  4. MPEG创始人、主席:MEPG商业模式已经破裂
  5. php撒意思,php表示是什么意思
  6. Hibernate 逆向工程生成POJO类和映射文件
  7. quantaxis中使用docker安装,出现的问题
  8. 深圳市南山区派出所地址和电话列表
  9. python类库26[web2py之介绍]
  10. java同步synchronized,锁
  11. 【离散数学】集合论 第三章 集合与关系(4) 集合的归纳定义、归纳证明、数学归纳法第一/二原理
  12. px和毫米的换算_iOS尺寸单位pt、ppi与px之间换算关系
  13. 洛谷P3435 [POI2006]OKR-Periods of Words题解(KMP)
  14. 机器人自带触觉反馈,隔空微创手术的利器
  15. Nim游戏入门+SG函数
  16. 通信电子电路(3)---高频功率放大器
  17. 服务器接收 App Store 苹果商店内购项目IAP的退款通知
  18. Fortran语法汇总(下)(持续更新中)
  19. JavaScript的数组练习
  20. 面试前夕知识点梳理之JavaScript(补充)

热门文章

  1. 恕我直言,在座的各位根本写不好Java!
  2. 阿里云PK腾讯云:两大SaaS加速器生死对决
  3. 史上最经典的10大反间计
  4. Linux下用脚本命令打开文档、表格、PPT
  5. Android--播放视频横竖屏切换的2种方式
  6. 腾讯云账号实名认证和域名实名认证的区别
  7. 木瓜从林。。。。。。。。。。。。。。。。。
  8. Streamset数据同步报错问题
  9. linux上ssh免密登录原理及实现
  10. 【07月05日】北上资金持股比例排名