AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1038099
Accepted
Ahmad Ismail
Ahmad Ismail
Asked: 2018-05-20 06:07:21 +0800 CST2018-05-20 06:07:21 +0800 CST 2018-05-20 06:07:21 +0800 CST

Capture2Text - Ubuntu Mate 中的替代方案(直接从屏幕捕获文本)

  • 772

我在这个网站上发现了几个类似的问题,但无法完成这个过程。

来自如何使用 OCR 工具从屏幕区域即时提取文本的答案?以及如何在部分屏幕截图上使用 OCR 来获取文本?

首先我安装了依赖项

sudo apt-get install tesseract-ocr
sudo apt-get install imagemagick
sudo apt-get install scrot
sudo apt-get install xsel

然后我将以下脚本放入/home/blueray/Documents/Translate/screen_ts.sh

#!/bin/bash 
# Dependencies: tesseract-ocr imagemagick scrot xsel

SCR_IMG=`mktemp`
trap "rm $SCR_IMG*" EXIT

scrot -s $SCR_IMG.png -q 100    
# increase image quality with option -q from default 75 to 100

mogrify -modulate 100,0 -resize 400% $SCR_IMG.png 
#should increase detection rate

tesseract $SCR_IMG.png $SCR_IMG &> /dev/null
cat $SCR_IMG.txt | xsel -bi

exit

请注意,我删除了

select tesseract_lang in eng rus equ ;do break;done
# Quick language menu, add more if you need other languages.

希望它只会考虑英语。如果不是这种情况,请告诉我。

现在当我把

bash /home/blueray/Documents/Translate/screen_ts.sh

它按我的意愿工作。

在 Windows 中,使用 Capture2Text,我曾经使用Win+Q将屏幕的一部分捕获为文本。所以,我检查了如何设置自定义键盘快捷键来控制音量?

我去了Menu-> Searched for Keyboard Shortcuts -> Click

在此处输入图像描述

  1. 然后我点击Add
  2. 名称:Capture2Text
  3. 命令:bash /home/blueray/Documents/Translate/screen_ts.sh
  4. 已点击Apply
  5. 点击右侧的快捷方式。
  6. 按下 WinQ

现在,当我按下 时WinQ,什么也没有发生。我究竟做错了什么?

keyboard shortcut-keys bash mate 18.04
  • 2 2 个回答
  • 2981 Views

2 个回答

  • Voted
  1. Best Answer
    anthony
    2018-10-16T22:30:10+08:002018-10-16T22:30:10+08:00

    你不需要“scrot”。Imagemagick(提供“mogrify”)可以完成屏幕捕获的工作。您也不需要保存中间图像,因为“tesseract”可以接受标准输入上的图像。

    因此,上述简化为...

    convert x: -modulate 100,0 -resize 400% -set density 300 png:- |
      tesseract stdin stdout | xsel -bi
    

    但是,我还在我的脚本版本中添加了以下内容,以在屏幕上弹出文本以便您检查它。

    xsel -po | xless - &
    

    当然,tesseract 可以对某些字体进行一些改进!例如,某些字体中的 'f' 有一个小钩子,使 tesseract 认为它们是 'P'!啊……

    编辑:我使用的完整脚本位于...

    https://antofthy.gitlab.io/software/#capture_ocr

    我使用我的窗口管理器(openbox)将它链接到一个“热键”(Meta-Print),所以我可以随时使用它。

    如果您不能使用热键,并且需要打开包含文本的屏幕部分,您可以延迟启动它...

    睡觉 5; capture_ocr

    享受

    • 3
  2. pasqal
    2020-05-23T05:49:30+08:002020-05-23T05:49:30+08:00

    我不得不修改@anthony 的脚本,这样它才能在我的盒子上运行(Kubuntu 18.04):

    而不是convert线,我用:

    import -resize 300% +dither png:- |

    -另外,我从最后一行删除了尾随的减号,所以:

    xsel -ob | $XPAGER

    工作很棒。

    • 1

相关问题

  • 输入语言切换键只接受 shift-alt 而不是 alt-shift [关闭]

  • 如何在键盘上映射未映射的键?[关闭]

  • 如何重置我的键盘布局?

  • 备份 bash 脚本未压缩其 tarball

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve