Capture2Text – 在Ubuntu Mate中替代(直接从Screen中捕获文本)

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

从如何使用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. 按下胜利 Q.

现在,当我按下Win Q时 ,没有任何反应。 我究竟做错了什么?

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

因此,上述简化为……

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

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

 xsel -po | xless - & 

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

http://www.ict.griffith.edu.au/anthony/software/#capture_ocr

我喜欢这个使用我的窗口管理器(openbox)的’热键’(Meta-Print),所以我可以随时使用它。

如果您不能使用热键,并且需要揭开包含文本的屏幕部分,您可以随时启动它…

睡5; capture_ocr

请享用

在自定义快捷方式中,我将命令更改为

 mate-terminal -e "/home/blueray/Documents/Translate/screen_ts.sh" 

现在它正在运作。 但问题是当我按下Win+Q终端屏幕部分时。 所以,我安装了xdotool

 sudo apt-get update sudo apt-get install xdotool 

在我的screen_ts.sh文件中添加了xdotool windowminimize $(xdotool getactivewindow)

所以,现在脚本看起来像

 #!/bin/bash # Dependencies: tesseract-ocr imagemagick scrot xsel xdotool windowminimize $(xdotool getactivewindow) 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