Shutter で作成したスクリーンショットを簡単に OCR 処理するための .sh スクリプトを作成しました。スクリプトは次のようになります ( ocrFile.sh
)。
#!/bin/bash
convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif
tesseract /tmp/output600dpi.tif ./outputText -l eng
このスクリプトは、Tesseract で OCR するときに必要な画像強化を行います。ターミナルから呼び出されると、適切に機能します。私は、プロセス全体を Nemo 内で実行したいと考えていたため、次の内容のOCR.nemo_action
insideという名前のカスタム アクションを作成しました。/home/user1/.local/share/nemo/actions
[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Exec=<ocrFile.sh %F>
Icon-Name=gtk-execute
Selection=Any
Extensions=png;
この Nemo アクションは、上記のスクリプトでは出力を生成しません。.sh スクリプトは、Nemo のカスタム アクションのフォルダーにもあります。
助けてください!
答え1
素晴らしい!!
-- ~/OCR.sh ( chmod +x ~/OCR.sh )
#!/bin/bash
convert $1 /tmp/OCR-output.pnm
cat /tmp/OCR-output.pnm | pamstretch 4 > /tmp/OCR-stretched.pnm
convert /tmp/OCR-stretched.pnm -colorspace gray /tmp/OCR-output600dpi.tif
tesseract /tmp/OCR-output600dpi.tif ~/Desktop/OCR-outputText -l eng
rm /tmp/OCR-output.pnm /tmp/OCR-stretched.pnm /tmp/OCR-output600dpi.tif
-- ~/.local/share/nemo/アクション
[Nemo Action]
Active=true
Name=OCR picture
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=/bin/bash /home/user/OCR.sh %F --- change "user"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;
そして、OCR テキストがデスクトップに表示されます。
答え2
私は Cinnamon でこの状況の解決策を見つけました。.nemo_action
ファイルは次の内容で構成されています。
[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=gnome-terminal --working-directory=%P -e "/media/storage/Scripts/actions/ocrFile.sh %F"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;
Active=true
ターミナルを起動してこの作業を実行するのは、ここではむしろ回避策です。他の方法では結果が得られなかったようです。
bash スクリプト自体はほとんど同じままで、コマンド セットの実行までターミナルを開いたままにする指示のみが変更されました。
#!/bin/bash
convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif
tesseract /tmp/output600dpi.tif ./outputText -l eng
rm /tmp/output.pnm /tmp/stretched.pnm /tmp/output600dpi.tif
bash
私が最終的に望んでいるのは、このプロセスを完全にターミナルフリーにすることです。このプロセスはGnome2(Mate)とは少し異なるようです。ここで、bashスクリプトは次のようになります。端末コマンド「バックグラウンドのどこか」で実行しないでください。GUI アプリケーションを呼び出す bash スクリプトでは、Gnome3 のExec=
ディレクティブによって<script.sh %F>
値が許可されます。
答え3
それはbashスクリプトですか?試してみてください
Exec=/bin/bash /home/user1/.local/share/nemo/actionsocrFile.sh %F
(または、/bin/sh
通常はdash
少し速くなる場合もあります。)
デバッグに関しては、コマンドラインで次のようにします。
$ nemo -q # quit all instances of nemo
$ NEMO_ACTION_VERBOSE=1 nemo
次に、開いた nemo ウィンドウからアクションを実行します。