点击上方“方志朋”,选择“设为星标”

回复”666“获取新整理的面试文章

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

你是用什么工具解决的呢?是手机自带拍照转文字功能?还是使用 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 和 OpenCV 的 EAST 检测器是一个很棒的组合。

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

热门内容:短信验证码的登录流程为什么要放弃 Lombok ?
这12张手绘图,让我彻底搞懂了微服务架构!如何解决代码中 if…else 过多的问题
MySQL中,当update修改数据与原数据相同时会再次执行吗?
点赞功能,用 MySQL 还是 Redis ?最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

这个图片转文字功能搞一下?还好这个开源项目救了我!相关推荐

  1. Qt5.10实现图片转文字功能添加截图功能代码分析

    继续更新之前的图片转文字功能,并添加截图功能代码. 这里我仅仅只是先截取全屏图片,点击截图功能就可以将屏幕截图.后续功能待完善. 我们来分析一下,这个是怎么实现的. 源码下载地址:ocr2019121 ...

  2. 图片提取文字功能很神奇?Java几行代码搞定它!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/weixin_44671737/ article/details/110000864 摘要 近日浏 ...

  3. 几行 Java 代码搞定图片提取文字功能

    近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片识别程序,完成了两个技术方案的选择,一是 tesseract + Python flask的方案实现,二是 tesseract ...

  4. 图片提取文字功能很神奇?Java几行代码搞定它

    摘要 近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片识别程序,完成了两个技术方案的选择,一是tesseract+python flask的方案实现,二是tesseract+ ...

  5. php 腾讯云 文字识别_讯飞语音转文字,图片转文字,效率高还免费

    讯飞语记由科大讯飞出品,是一款专注语音输入的综合类云笔记,支持实时语音听写.会议录音转写,拍照识别.图文编排.智能任务提醒等功能.是您写小说.写日记.采访.会议记录的必备神器! [哪些人在用讯飞语记? ...

  6. OCR图片转文字功能实现

    前言:由于本人技术过于菜,在实现这个功能的时候,遇到很多问题,其实主要原因还是因为看不太习惯API接口,所以我建议大家多看看API文档,经常看以后遇到需要看API文档的时候也就会了: 软硬件环境:百度 ...

  7. qq截图功能自带图片转文字功能

  8. 分享4个方法,手机就能搞定图片转文字提取

    在工作中,有时候会遇到需要将一些文件发送给其他人的情况,但是这些文件是图片格式,如果对方需要编辑或者复制其中的内容就比较麻烦了.为了解决这个问题,我们可以使用一些工具将图片转换成文字,方便编辑和复制. ...

  9. 用Java实现图片转文字的功能具体流程

    要实现图片转文字的功能,我们可以使用OCR(Optical Character Recognition,光学字符识别)技术.OCR技术可以将图片中的文字转换成计算机可识别的文本格式.在Java中,我们 ...

最新文章

  1. vc+如何添加右键弹出菜单
  2. java加密解密与数字证书的操作
  3. 使用 Google Gears 开发离线应用
  4. 《云栖精选》第8期:科技,改变世界
  5. 识别Win10系统两种方法
  6. 专访《程序员的三门课》李伟山:从程序员到技术总监的修炼秘籍!
  7. 代码管理_阿里巴巴自研代码管理平台技术解密
  8. Android App罕见错误和优化方案
  9. C语言中16进制转字符串字符串转16进制
  10. php调用笛风接口,优雅的用PHP来实现解析抖音无水印视频!
  11. centos7的mysql登录
  12. linux redis3.2.5安装及redis集群创建
  13. 2022-2027年中国服装定制行业市场全景评估及发展战略规划报告
  14. 数学建模学习(98):CHIO优化算法
  15. 解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries
  16. 【Python进阶】9- Pandas的应用
  17. 开源Odoo ERP13.2版本模块功能
  18. css实现鼠标悬停效果
  19. android 音频裁剪(1)—MP3裁剪
  20. fatal: unable to access ‘https://github.com/xxx/123.git/‘: Failed connect to github.com:443 解决方案

热门文章

  1. 修改ecshop的100种技巧
  2. replace 使用函数作为第二参数
  3. Linux学习之系统时间同步
  4. 团队分数分配方法——BY 李栋
  5. 有兴趣的执行一下这段代码
  6. 青少年编程竞赛交流群周报(第036周)
  7. 如何利用 C# 爬取「京东 - 计算机与互联网图书销量榜」!
  8. Matlab与机器学习 -- BP网络神经元上的转移函数
  9. python解析json
  10. AnimeGANv2 实现动漫风格迁移,简单操作