J'ai créé un script .sh pour OCR-ing simple de captures d'écran que je fais avec Shutter. Le script ressemble à ceci (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
Ce script améliore les images requises lors de la création de ROC avec tesseract. Il fait le travail correctement s'il est appelé depuis le terminal. Ce que je voulais, c'était faire tout le processus dans Nemo. J'ai donc créé une action personnalisée nommée OCR.nemo_action
à l'intérieur de /home/user1/.local/share/nemo/actions
avec le contenu suivant:
[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;
Cette action Nemo ne produit pas de sortie avec le script donné ci-dessus. Le script .sh se trouve également dans le dossier des actions personnalisées de Nemo.
S'il vous plaît aider!
Génial!!
#!/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;
Et le texte OCR est sur mon bureau !!!
Je suis en quelque sorte venu à la solution pour cette situation à la cannelle. Le fichier .nemo_action
comprend le contenu suivant.
[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
Avoir le lancement de terminal pour faire le travail est plutôt une solution de contournement ici. Tout le reste ne semblait pas donner de résultats.
Le script bash lui-même est resté à peu près le même, modifié uniquement pour une directive de garder le terminal ouvert jusqu'à l'exécution du jeu de commandes.
#!/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
Ce que je souhaite en fin de compte, c’est de rendre ce processus totalement exempt de terminal. Il me semble que le processus se déroule légèrement différemment de Gnome2 (Mate). Ici, le script bash qui consiste en commandes de terminal n'exécute pas "quelque part en arrière-plan". Avec les scripts bash qui appellent des applications d'interface graphique, la directive Exec=
de Gnome3 autorise la valeur <script.sh %F>
.
Est-ce un script bash? Essayer
Exec=/bin/bash /home/user1/.local/share/nemo/actionsocrFile.sh %F
(ou même /bin/sh
qui est généralement dash
pourrait être légèrement plus rapide.)
En ce qui concerne le débogage, en ligne de commande:
$ nemo -q # quit all instances of nemo
$ NEMO_ACTION_VERBOSE=1 nemo
Ensuite, lancez l’action depuis la fenêtre nemo qui s’est ouverte.