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
という名前のカスタムアクションを次の内容で/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のカスタムアクションのフォルダーにもあります。
助けてください!
すばらしいです!!
#!/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
[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テキストは私のデスクトップにあります!!!
シナモンでこの状況を解決するようになりました。 .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>
値を許可します。
それはbashスクリプトですか?試して
Exec=/bin/bash /home/user1/.local/share/nemo/actionsocrFile.sh %F
(または、通常dash
である/bin/sh
でさえ、わずかに速いかもしれません。)
デバッグに関しては、コマンドラインで:
$ nemo -q # quit all instances of nemo
$ NEMO_ACTION_VERBOSE=1 nemo
次に、開いたnemoウィンドウからアクションを実行します。