文章目录

  • 参考资料
  • 1. 主要思路
  • 2. 安装依赖
  • 3. 制作shell脚本
  • 4. 设置快捷键,一键调用shell脚本

参考资料

  1. https://www.bilibili.com/video/av90573946/
  2. https://blog.csdn.net/jia12216/article/details/55222907

1. 主要思路

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

2. 安装依赖

  • 安装tesseract

    # 添加源
    sudo add-apt-repository ppa:alex-p/tesseract-ocr
    # 更新源
    sudo apt update
    # 安装
    sudo apt 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

    sudo apt install gnome-screenshot
    sudo apt install xclip
    sudo apt install imagemagick
    

3. 制作shell脚本

将以下代码复制到文档,并将后缀改成 .sh ,例如命名为ocr.sh

注意:将变量SCR路径部分替换成你想要存放截图以及识别结果txt文档的路径;

#!/bin/env zsh
# Dependencies: tesseract-ocr imagemagick gnome-screenshot xclip#Name: OCR Picture
#Fuction: take a screenshot and OCR the letters in the picture
#Path: /home/Username/...#you can only scan one character at a time
SCR="/home/chh3213/The_linux_world_of_CHH/trick/OCR_create/temp/src"
SCR2="/home/chh3213/The_linux_world_of_CHH/trick/OCR_create/temp/src2"
# 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# get the text and copy to clipboard#sed -i 's/[[:space:]]//g' $SCR.txt # 删除空格方式1
#sed -i 's/\ //g' $SCR.txt  # 删除空格方式2
cat $SCR.txt  | sed -r 's/([^0-9a-z])?\s+([^0-9a-z])/\1\2/ig'>$SCR2.txt  # 解决每个汉字之间有空格的情况,英文单词间空格依旧保留
cat $SCR2.txt | xclip -selection clipboard
exit

注意:中文识别情况下,有可能每个字之间都有空格,所以我在脚本里添加了去除空格的代码。

添加运行权限

sudo chmod a+x ocr.sh

4. 设置快捷键,一键调用shell脚本

  • 打开系统设置,点击键盘快捷键,右边拉到底部可看到+号,点击+号添加快捷键。

  • 创建快捷键:

    • 名称:自由设置,建议以shell脚本名称命名;

    • 命令:bash 这里换成你自己shell脚本ocr.sh所在的路径;例如,我这里的bash命令为:

      bash /home/chh3213/The_linux_world_of_CHH/trick/OCR_create/ocr.sh
      

到这里,就配置完成了。直接使用快捷键即可进入截屏模式,截取想要识别的文字区域,等待片刻后便可在指定目录生成src.png和src.txt文件,同时,文字会自动复制到剪切板,可以直接粘贴使用。抓紧去试试吧!

超简单教程——Linux下自制OCR文字识别相关推荐

  1. 淡谈自然场景下小样本OCR文字识别

    淡谈自然场景下小样本OCR文字识别 1. 环境准备 实验中使用了centos7.6,intel core i4710,gtx980M(老机器重装) 安装的时候要注意,linux内核版本和实际版本要一致 ...

  2. 诚之和:简单应用JavaCV实现图片OCR文字识别

    现在识别的产品非常的多,例如人脸识别.文字识别以及语音识别等等.下面,分享一篇用短短几行的Java代码就可以实现图片OCR文字识别的文章,有兴趣的小伙伴们可以参考学习本文章. spring boot项 ...

  3. 互联网人工智能下的OCR文字识别

    悦保云OCR系列产品包括通用文字识别,文档识别,卡证识别,票据识别,资产类识别,汽车类识别,教育类识别,仪器仪表识别,自定义模板文字识别. 各产品包含的接口功能如下: 通用文字识别: 网络图片文字识别 ...

  4. linux系统下的ocr软件,Ubuntu下的ocr文字识别(pdf、tif等)

    平时使用扫描件或者pdf查看文档,但是在ipad上当文字比较小的时候不能有效放大,过着每次阅读需要移动屏幕,十分不方便,为此想将pdf或者图片中的文字截取出来,可以有效处理,当然需要ocr技术了,现在 ...

  5. linux vbox安装mac os,超简单的linux下virtualbox4.3.26安装配置黑苹果 OSX 10.9的办法

    为了在虚拟机上装个osx,前前后后折腾了7天,终于搞定了. 发现虚拟机装osx有个最大的好处是,可以直接下载别人现成的虚拟机镜像,我就是在屡屡失败后,下载了个vdi镜像了事,虽然比较偷懒,但对于没时间 ...

  6. 电脑图片文字识别,得力OCR文字识别

    **电脑图片文字如何识别?**电脑图片文字识别的方法你知道吗?在生活中遇到图片文字不能编辑不能复制,需要用到图片上的文字的时候特别烦恼,要自己手动输入是多么耗时的一件事,一下子降低了工作效率,那么要怎 ...

  7. 宝塔linux输入bt,Linux宝塔面板如何挂载硬盘?BT宝塔面板磁盘挂载超简单教程来了!...

    Linux宝塔面板如何挂载硬盘?BT宝塔面板磁盘挂载超简单教程来了! 为解决这个问题,我们制作了磁盘自动挂载工具,支持Centos.Ubuntu.Debian.Fedora说明: 1:本工具默认将数据 ...

  8. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

  9. 最简单的屏幕OCR文字识别

    最简单的屏幕OCR文字识别 使用office2003附带的MODI可以进行OCR文字识别,不需要取样,使用简单,识别率很不错. 适合用于识别比较规范的文本.缺点是必须安装office2003及Micr ...

  10. 网页添加Live 2D看板娘超简单教程——伸手即可带走

    什么是看板娘?移目至左下角,这就是看板娘! 什么?没出来?鼠标放上去只有文字?那是因为源代码放在GitHub上,GitHub国外的网站,国内加载的慢啊,稍稍等一下啦,客官也可以亲自去GitHub拉源代 ...

最新文章

  1. IDEA 2022.2.1 Beta 2发布:新增支持Java 18、增强JUnit 5的支持
  2. getServletPath与getRequestURI
  3. 15个最热门的GitHub库
  4. vba定义全局变量并赋值_利用VBA代码如何打开任意程序
  5. android studio不能更新代码,解决Android Studio 和 Android SDK Manager 无法在线更新的问题....
  6. 刚进职场的IT前端小白,如何规划自己的未来之路?有哪些发展方向?
  7. spring aop原理_源码解析Spring的AOP原理(一)
  8. 工厂模式(描述语言PHP)
  9. android 添加字库
  10. 国产Linux系统deepin 小白双系统安装详细教程+笔记本双显卡处理设置+使用体验
  11. 装机大师无法发现linux硬盘,进入pe系统找不到硬盘的解决办法
  12. html5 |移动 游戏 毕业设计,移动平台下基于HTML5的教育游戏研究与设计
  13. python 三角函数计算
  14. 第82次上Topic课(Eyewitness)
  15. inet addr、bcast、mask
  16. remap_pfn_range()详解
  17. swiper 上滑触发_在绝地求生加入滑铲等战术动作会怎么样?你们想过吗?
  18. 推荐7款国产的在线HTML编辑器
  19. python plt.imshow函数显示图像颜色失真
  20. 几大厂商的hypervisors比较分析

热门文章

  1. 2018二月安恒月赛WRITE UP
  2. 【君思智慧园区】物业管理系统解决方案
  3. MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
  4. 什么是消息队列(Message queue)
  5. python实现基于cnn的交通流预测代码_基于CNN和LSTM的交通流预测
  6. LayaBox2D使用自定义Shader的方法
  7. 全国每年的考证时间大全
  8. 天正电气2014的安装
  9. 2020 年最新 Web 前端开发经典面试试题及答案(建议收藏)
  10. 重现Struts1的操纵classLoader漏洞