热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

截取文本某一域shell_Linux系统(ubuntu)一键OCR识别图片截图文字转文本

目的本文主要希望在ubuntu系统下实现一键OCR识别图片截图中的内容使之转换为文本可以复制粘贴主要思路利用截图软件gnome-screenshot进行截取需要被文字识别的图片&#

目的

本文主要希望在ubuntu系统下实现 一键OCR识别图片截图中的内容使之转换为文本可以复制粘贴

主要思路

  1. 利用截图软件gnome-screenshot 进行截取需要被文字识别的图片;
  2. 利用文字识别OCR软件tesseract,进行识别
  3. 将结果输出,复制到文件和剪切板

本文附视频教程:ubuntu linux 下实现一键截屏截图OCR文字识别_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

步骤1:安装依赖软件

  1. 安装tesseract
    tesseract是一个开源的OCR引擎,最初是由惠普公司开发用来作为其平板扫描仪的OCR引擎,2005年惠普将其开源出来,之后google接手负责维护。目前稳定的版本是3.0。4.0版本加入了基于LSTM的神经网络技术,中文字符识别准确率有所提高。
  • 添加源

sudo add-apt-repository ppa:alex-p/tesseract-ocr

  • 更新源

sudo apt-get update

  • 安装

sudo apt-get install tesseract-ocr

  • 安装中文字库

tesseract支持60多种语言的识别不同,使用之前需要先下载对应语言的字库,下载地址:https://github.com/tesseract-ocr/tessdata
下载速度慢的朋友可以从我分享的云盘下载(仅有简体中英文字库):https://share.weiyun.com/5IJtlcY
下载完成之后把.traineddata字库文件放到tessdata目录下,默认路径是/usr/share/tesseract-ocr/4.00/tessdata

  • 安装gnome-screenshot,xclip, imagemagick


这3个不需要添加源,直接终端输入代码:
sudo apt-get install gnome-screenshot
sudo apt-get install xclip
sudo apt-get install imagemagick


步骤2:制作shell脚本


将以下代码复制到文档,并将后缀改成.sh 并增加运行权限 sudo chmod a+x *.sh
注意:将代码中,SCR="/home/Username/Documents/temp"双引号中的路径替换成你想要存放截图以及识别结果txt文档的路径

————————————————————————

2020年4月24更新

1.添加处理OCR识别结果中过多的空格及换行,感谢云之巅`的提议

具体做法是,利用sed来删除多余的空格,用xargs删除换行符

sed 's/ //g' 第一个斜杠和第二个斜杠之间的一个空格 替换成 第二个斜杠和第三个斜杠之间的nothing.

2. 添加OCR处理之后的弹窗提示,感谢陈留阳的代码

————————————————————————

#!/bin/env bash
# Dependencies: tesseract-ocr imagemagick gnome-screenshot xclip#Name: OCR Picture
#Author:andrew
#Fuction: take a screenshot and OCR the letters in the picture
#Path: /home/Username/...
#Date: 2020-02-10#you can only scan one character at a time
SCR="/home/Username/Documents/temp"####take a shot what you wana to OCR to text
gnome-screenshot -a -f $SCR.png####increase the png
mogrify -modulate 100,0 -resize 400% $SCR.png
#should increase detection rate####OCR by tesseract
tesseract $SCR.png $SCR &> /dev/null -l eng+chi1####use sed to delete the blanks & get the text and copy to clipboard
cat $SCR.txt | sed 's/ //g' | xclip -selection clipboard#需要删除换行请使用此语句 并注释上一句(行首加#)
#cat $SCR.txt | sed 's/ //g'| xargs | xclip -selection clipboard#弹窗提示OCR结束 the code below Thanks to 陈留阳
notify-send "OCR Done"exit

步骤3:设置快捷键,一键调用shell脚本


进入:设置→键盘 拉到底部,点击+
名称:自由设置,建议以shell脚本名称命名
命令:bash 这里换成你自己shell脚本所在的路径/OCR.sh
注意bash后面有一个空格

2cb138bf1221d290fa57f9be70b041bb.png
72dcd4a9ebbc8af142d2f7231bb4cc00.png

这样设置好后,按下设置的快捷键,即可一键OCR识别图片截图转换为文本

附:ubuntu下实现一键截图视频教程-像windows中一样方便

ubuntu linux神级一键截图软件flameshot_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • PatchODAX8: ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
author-avatar
男人32ABC_130
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有