web-dev-qa-db-ja.com

Capture2Text-Ubuntu Mateの代替(画面から直接テキストをキャプチャ)

このサイトで同様の質問をいくつか見つけましたが、プロセスを完了できませんでした。

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に行きました

enter image description here

  1. 次にAddをクリックしました
  2. 名前:Capture2Text
  3. コマンド:bash /home/blueray/Documents/Translate/screen_ts.sh
  4. Applyをクリックしました
  5. 右側のショートカットをクリックしました。
  6. 押された WinQ

今私が押すと WinQ、 何も起こりません。 何が間違っているのですか?

3
blueray

「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'であると思わせます!ああ...

編集:私が使用する完全なスクリプトは...にあります.

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

ウィンドウマネージャー(openbox)を使用して、これを「ホットキー」(メタ印刷)にリンクするので、いつでも使用できます。

ホットキーを使用できず、テキストを含む画面の一部を明らかにする必要がある場合は、いつでも遅延して起動できます...

睡眠5; capture_ocr

楽しい

2
anthony

カスタムショートカットで、コマンドを

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
0
blueray