Criei um script .sh para OCR simples de capturas de tela que faço com o Shutter. O script fica assim ( 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
Este script faz alguns aprimoramentos de imagem necessários ao fazer OCR com tesseract. Ele faz o trabalho corretamente se for chamado do terminal. O que eu queria era fazer todo o processo dentro do Nemo, então criei uma ação customizada chamada OCR.nemo_action
inside /home/user1/.local/share/nemo/actions
com o seguinte conteúdo:
[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;
Esta ação do Nemo não produz saída com o script fornecido acima. O script .sh também está na pasta das ações personalizadas do Nemo.
Por favor ajude!
Responder1
Ótimo!!
-- ~/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/actions
[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;
E o texto OCR está na minha área de trabalho !!!
Responder2
Eu meio que encontrei uma solução para essa situação no Cinnamon. O .nemo_action
arquivo consiste no seguinte conteúdo.
[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
Ter o lançamento do terminal para fazer o trabalho é uma solução alternativa aqui. Todo o resto não parecia produzir resultados.
O script bash em si permaneceu praticamente o mesmo, alterado apenas por uma diretiva para manter o terminal aberto até a execução do conjunto de comandos.
#!/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
Em última análise, o que desejo é tornar esse processo completamente livre de terminais. Parece-me que o processo é um pouco diferente do Gnome2 (Mate). Aqui o script bash que consiste emcomandos de terminalnão execute "em algum lugar em segundo plano". Com scripts bash que chamam aplicativos GUI, Exec=
a diretiva do Gnome3 permite o <script.sh %F>
valor.
Responder3
É um script bash? Tentar
Exec=/bin/bash /home/user1/.local/share/nemo/actionsocrFile.sh %F
(ou mesmo /bin/sh
o que normalmente dash
pode ser um pouco mais rápido.)
Quanto à depuração, na linha de comando:
$ nemo -q # quit all instances of nemo
$ NEMO_ACTION_VERBOSE=1 nemo
Em seguida, execute a ação na janela do nemo que será aberta.