Connexion

Besoin d'aide ? Une question ? Un avis ? Rejoignez nous sur notre salon IRC pour clavarder

Forum

Système et matériels » Imprimantes scanners et Appareils Photo [Réglé] probleme script la fin ne fonctionne pas

GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 31/01/2020 à 18h53
Bonjour,

possédant une imprimante brother j'ai modifier le script scantoocr mais la dernière ligne ne fonctionne pas alors que si je l’exécute dans un terminal sa fonctionne!

scantoocr

Caché :
#! /bin/sh
set +o noclobber
#
# $1 = scanner device
# $2 = friendly name
#

#
# 100,200,300,400,600
#
resolution=300
device=$1
mkdir -p ~/brscan
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 100000
else
sleep 0.1
fi
output_file=`mktemp ~/brscan/OCR/brscan.XXXXXX`
#echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
if [ ! -s $output_file ];then
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 1000000
else
sleep 1
fi
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
fi
#echo gimp -n $output_file 2>/dev/null \;rm -f $output_file | sh &

if [ $? = 0 ]
then
convert $output_file -monochrome "$output_file.tif"
# tesseract *.tif * -l fra
# convert $output_file "$output_file.png"
else
convert $output_file "$output_file.tif"

# tesseract *.tif * -l fra

fi

rm $output_file

tesseract *.tif * -l fra







si quelqu'un a une solution!

merci


kde4 & xfce4
   
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 7816

Le 31/01/2020 à 22h10
Bonjour,
Je ne comprends pas ce qui fonctionne et ne fonctionne pas.
Qu'elle est l'autre utilisation qu'en ligne de commande ?


Yves
   
GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 01/02/2020 à 10h27
Papoteur :
Bonjour,
Je ne comprends pas ce qui fonctionne et ne fonctionne pas.
Qu'elle est l'autre utilisation qu'en ligne de commande ?


Merci de me répondre!

voilà le script ce passe bien sauf la dernière commande "tesseract *.tif * -l fra" j'ai juste le fichier *.tif et aucun fichier txt!


Merci


kde4 & xfce4
   
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 7816

Le 01/02/2020 à 12h04
Bonjour,
Je pense qu'il n'aime pas le caractère de généralisation * dans le nom.
Il faut que tu spécifies explicitement un nom complet. Pareil pour la sortie.


Yves
   
GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 01/02/2020 à 12h51
Papoteur :
Bonjour,
Je pense qu'il n'aime pas le caractère de généralisation * dans le nom.
Il faut que tu spécifies explicitement un nom complet. Pareil pour la sortie.


oui mais c'est l'imprimante qui donne un non aléatoire genre "brscan.jl1nBz.tif" pourtant quand j’exécute mon fichier dans un terminal il me sort le fichier final en txt!

Merci


kde4 & xfce4
   
steven Membre non connecté

Rang

Avatar

Inscrit le : 18/05/2018 à 10h57

Messages: 398

Le 01/02/2020 à 13h54
Bonsoir :merci:

Je ne suis pas un specialiste mais il y a un truc qui m'a........
ton script dit : > tesseract *.tif * -l fra
et du peu que je sais c'est qu'il ne supporte pas les séparateurs collé à !
perso j'essaierais : tesseract *.tif * - [espace] l [espace]fra

parce qu'impossible de savoir si c'est | fra ou -l fra [- L minuscule).

par ce que là, n'etant pas clair, tu va avoir un probleme de script
* tous seul en script correspond a la designation de sous rep je crois...

voilà!
bonne chance :merci: Edité par steven Le 01/02/2020 à 13h57


Le temps que tu passe a me critiquer... moi je le passe a évoluer ! Question de priorité.
Michel audiard :
Vu ma "spécialité", je prefere regarder la teneur du message que le stylo (ou pire, la main) qui l'ecris
Mwhahahahahahaha :mdr2:
   
GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 01/02/2020 à 14h23
steven :
Bonsoir :merci:

Je ne suis pas un specialiste mais il y a un truc qui m'a........
ton script dit : > tesseract *.tif * -l fra
et du peu que je sais c'est qu'il ne supporte pas les séparateurs collé à !
perso j'essaierais : tesseract *.tif * - [espace] l [espace]fra

parce qu'impossible de savoir si c'est | fra ou -l fra [- L minuscule).

par ce que là, n'etant pas clair, tu va avoir un probleme de script
* tous seul en script correspond a la designation de sous rep je crois...

voilà!
bonne chance :merci:


bonjour,

c'est un L minuscule mais cette partie du script fonctionne tester dans un terminal!

merci


kde4 & xfce4
   
GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 01/02/2020 à 16h05
c'est bon j'ai trouver!

il manquait une ligne indiquant le dossier ou est l'image tif!

scantoocr

Caché :
#! /bin/sh
set +o noclobber
#
# $1 = scanner device
# $2 = friendly name
#

#
# 100,200,300,400,600
#
resolution=300
device=$1
mkdir -p ~/brscan
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 100000
else
sleep 0.1
fi
output_file=`mktemp ~/brscan/OCR/brscan.XXXXXX`
#echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
if [ ! -s $output_file ];then
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 1000000
else
sleep 1
fi
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
fi
#echo gimp -n $output_file 2>/dev/null \;rm -f $output_file | sh &

if [ $? = 0 ]
then
convert $output_file -monochrome "$output_file.tif"
# tesseract *.tif * -l fra
# convert $output_file "$output_file.png"
else
convert $output_file "$output_file.tif"

# tesseract *.tif * -l fra

fi

rm $output_file
sleep 1


#./scanocr.sh
cd /home/votre-nom/brscan/OCR

tesseract brscan.*.tif * -l fra

rm *.tif





kde4 & xfce4
   
joel Membre non connecté

Rang

Avatar

Inscrit le : 10/04/2011 à 18h32

Localisation : Belleville - Rhône

Messages: 480

Le 02/02/2020 à 21h27
Merci pour ton script.

J'ai voulu essayer, par curiosité, parce que je n'en ai pas réellement besoin.

J'ai donc adapté ton script ainsi :
Caché :

#! /bin/sh
set +o noclobber
#
# $1 = scanner device
# $2 = friendly name
#

#
# 100,200,300,400,600
#
resolution=300
#device=$1
device=Brother-DCP-9015CDW
#mkdir -p ~/brscan
mkdir -p /tmp/OCR

if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 100000
else
sleep 0.1
fi
#output_file=`mktemp ~/brscan/OCR/brscan.XXXXXX`
output_file=`mktemp /tmp/OCR/brscan.XXXXXX`
#echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
if [ ! -s $output_file ];then
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 1000000
else
sleep 1
fi
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
fi
#echo gimp -n $output_file 2>/dev/null \;rm -f $output_file | sh &

if [ $? = 0 ]
then
convert $output_file -monochrome "$output_file.tif"
# tesseract *.tif * -l fra
# convert $output_file "$output_file.png"
else
convert $output_file "$output_file.tif"

# tesseract *.tif * -l fra

fi

rm $output_file
sleep 1


#./scanocr.sh
#cd /home/votre-nom/brscan/OCR
cd /tmp/OCR

tesseract brscan.*.tif * -l fra

rm *.tif


Réponse :
$ ./scantoocr
warning: usleep is deprecated, and will be removed in near future!
warning: use "sleep 0.1" instead...
warning: usleep is deprecated, and will be removed in near future!
warning: use "sleep 1" instead...
convert: no decode delegate for this image format `3QJBJM' @ error/constitute.c/ReadImage/556.
convert: no images defined `/tmp/OCR/brscan.3qjBJM.tif' @ error/convert.c/ConvertImageCommand/3273.
Tesseract Open Source OCR Engine v4.0.0 with Leptonica
Error, cannot read input file brscan.*.tif: No such file or directory
Error during processing.
rm: impossible de supprimer '*.tif': Aucun fichier ou dossier de ce type

Le script n'est pas sensé lancer le scanner de l'imprimante ?
Parce qu'il ne se passe rien...


joel
   
GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 03/02/2020 à 09h34
joel :
Merci pour ton script.

J'ai voulu essayer, par curiosité, parce que je n'en ai pas réellement besoin.

Le script n'est pas sensé lancer le scanner de l'imprimante ?
Parce qu'il ne se passe rien...


le script fonctionne depuis l'imprimante Brother celle qui ont les commandes vers pc

depuis j'ai modifié le script

Caché :
#! /bin/sh
set +o noclobber
#
# $1 = scanner device
# $2 = friendly name
#

#
# 100,200,300,400,600
#
cd /home/votre-nom/brscan/OCR/temp
rm *.*

resolution=300
device=$1
mkdir -p ~/brscan
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 100000
else
sleep 0.1
fi
output_file=`mktemp ~/brscan/OCR/temp/brscan.XXXXXX`
#echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
if [ ! -s $output_file ];then
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 1000000
else
sleep 1
fi
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
fi
#echo gimp -n $output_file 2>/dev/null \;rm -f $output_file | sh &

if [ $? = 0 ]
then
convert $output_file -monochrome "$output_file.tif"
# tesseract *.tif * -l fra
# convert $output_file "$output_file.png"
else
convert $output_file "$output_file.tif"

# tesseract *.tif * -l fra

fi

rm $output_file
sleep 1



cd /home/votre-nom/brscan/OCR/temp

tesseract brscan.*.tif * -l fra

mv *.txt /home/guy-jean/brscan/OCR







kde4 & xfce4
   
Jybz Membre non connecté

Rang

Avatar

Modérateur Administrateur

Inscrit le : 10/10/2018 à 10h26

Messages: 3035

Le 03/02/2020 à 10h19
GPE GPE :
joel :
Merci pour ton script.

J'ai voulu essayer, par curiosité, parce que je n'en ai pas réellement besoin.

Le script n'est pas sensé lancer le scanner de l'imprimante ?
Parce qu'il ne se passe rien...


le script fonctionne depuis l'imprimante Brother celle qui ont les commandes vers pc

depuis j'ai modifié le script

Caché :
#! /bin/sh
set +o noclobber
#
# $1 = scanner device
# $2 = friendly name
#

#
# 100,200,300,400,600
#
cd /home/votre-nom/brscan/OCR/temp
rm *.*

resolution=300
device=$1
mkdir -p ~/brscan
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 100000
else
sleep 0.1
fi
output_file=`mktemp ~/brscan/OCR/temp/brscan.XXXXXX`
#echo "scan from $2($device) to $output_file"
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
if [ ! -s $output_file ];then
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 1000000
else
sleep 1
fi
scanimage --device-name "$device" --resolution $resolution> $output_file 2>/dev/null
fi
#echo gimp -n $output_file 2>/dev/null ;rm -f $output_file | sh &

if [ $? = 0 ]
then
convert $output_file -monochrome "$output_file.tif"
# tesseract *.tif * -l fra
# convert $output_file "$output_file.png"
else
convert $output_file "$output_file.tif"

# tesseract *.tif * -l fra

fi

rm $output_file
sleep 1



cd /home/votre-nom/brscan/OCR/temp

tesseract brscan.*.tif * -l fra

mv *.txt /home/guy-jean/brscan/OCR


Salut, je me suis permis de faire quelques modifications :
supprimer l'instruction obsolète usleep pour ne garder que sleep. Pourquoi s'obstiner à la garder ?
J'ai commenté le code.

Code BASH :
#! /bin/sh
 
 ### Pourquoi ? 
set +o noclobber
 
#
# $1 = scanner device
# $2 = friendly name
#
DEVICE=$1
FRIENDLYNAME=$2
 
#
# 100,200,300,400,600
#
RESOLUTION=300
 
 ### BUG : le dossier (probablement inexistant) est ouvert
cd ${HOME}/brscan/OCR/temp
rm *.*
 ### BUG (suite) : et ici, s'il n'est pas existant, on le créer. Mais on vient d'essayer de l'ouvrir juste avant.
mkdir -p  ${HOME}/brscan
 
 ### Pourquoi ?
sleep 0.1
 
 ### Pourquoi utiliser la partition principale ? Le but de mktemp justement est de travailler sur la mémoire vive.
output_file=$(mktemp ${HOME}/brscan/OCR/temp/brscan.XXXXXX )
#echo "scan from ${FRIENDLYNAME}(${DEVICE}) to $output_file"
scanimage --device-name "${DEVICE}" --resolution ${RESOLUTION} > ${output_file} 2>/dev/null
if [ ! -s ${output_file} ];then
    ### Pourquoi attendre ?
    sleep 1
    scanimage --device-name "${DEVICE}" --resolution ${RESOLUTION} > ${output_file} 2>/dev/null
fi
#echo gimp -n ${output_file} 2>/dev/null \; rm -f ${output_file} | sh &
 
if [ ${?} = 0 ]; then
    convert ${output_file} -monochrome "${output_file}.tif"
    # tesseract *.tif * -l fra
    # convert ${output_file} "${output_file}.png"
else
    convert ${output_file} "${output_file}.tif"
 
    # tesseract *.tif * -l fra
fi
 
rm ${output_file}
 
 ### Pourquoi attendre encore ?
sleep 1
 
cd ${HOME}/brscan/OCR/temp
 
tesseract brscan.*.tif * -l fra
 
mv *.txt ${HOME}/brscan/OCR
 
 


Tu peux ajouter des messages au script, par exemple :
Code BASH :
echo "Un message d'erreur ou de contrôle" >&2

Ou encore, faire quelques fonctions :
Code BASH :
 
function printerror() {
    echo -e "\e[1;31m$(timestamp) ${1}\e[0m" >&2
}
function printmessage() {
    echo -e "\e[1;32m$(timestamp) ${1}\e[0m" >&2
}
printmessage "Voici un message bien vert voyant."
printerreur "En voici un autre bien rouge alertant !"
printmessage "Mais finalement, finir par un vert..."
 


J'ai posé quelques questions dans le code, n'hésite pas à continuer l'échange.
   
GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 03/02/2020 à 11h16
Jybz :
[quote=GPE GPE]
J'ai posé quelques questions dans le code, n'hésite pas à continuer l'échange.


c'est un script que j'ai récupérer de l'installation de ma brother, la plupart des lignes de codes y étaient déjà, j'ai juste modifié une ligne ou deux!
je suis pas un as du code! donc je ne peut te répondre!
mais merci de ton aide j'ai corriger suite à tes indications.

donc voici le code rectifier

Caché :
#! /bin/sh

#
# $1 = scanner device
# $2 = friendly name
#
DEVICE=$1
FRIENDLYNAME=$2

#
# 100,200,300,400,600
#
RESOLUTION=300

mkdir -p ${HOME}/brscan/OCR/temp
cd ${HOME}/brscan/OCR/temp
rm *.*


### Pourquoi utiliser la partition principale ? Le but de mktemp justement est de travailler sur la mémoire vive.
output_file=$(mktemp ${HOME}/brscan/OCR/temp/brscan.XXXXXX )
#echo "scan from ${FRIENDLYNAME}(${DEVICE}) to $output_file"
scanimage --device-name "${DEVICE}" --resolution ${RESOLUTION} > ${output_file} 2>/dev/null
if [ ! -s ${output_file} ];then

scanimage --device-name "${DEVICE}" --resolution ${RESOLUTION} > ${output_file} 2>/dev/null
fi
#echo gimp -n ${output_file} 2>/dev/null \; rm -f ${output_file} | sh &

if [ ${?} = 0 ]; then
convert ${output_file} -monochrome "${output_file}.tif"
# tesseract *.tif * -l fra
# convert ${output_file} "${output_file}.png"
else
convert ${output_file} "${output_file}.tif"

# tesseract *.tif * -l fra
fi

rm ${output_file}


cd ${HOME}/brscan/OCR/temp

tesseract brscan.*.tif * -l fra

mv *.txt ${HOME}/brscan/OCR







Merci de ton aide Edité par GPE GPE Le 03/02/2020 à 11h17


kde4 & xfce4
   
Jybz Membre non connecté

Rang

Avatar

Modérateur Administrateur

Inscrit le : 10/10/2018 à 10h26

Messages: 3035

Le 03/02/2020 à 11h44
Ok,
je redonne mon avis :
Code BASH :
#! /bin/sh
##Check dependencies :
LIST="sane-backends
imagemagick
tesseract
tesseract-fra"
STOP=0
for i in ${LIST} ; do
    urpmq ${i} 1>/dev/null 2>/dev/null
    if [ 0 -ne ${?} ]; then
        echo "Le paquet nécessaire \"${i}\" n'est pas installé." >&2
        STOP=1
    fi
done
if [ 0 -ne ${STOP} ]; then
    exit -1
fi
## Renaming
# $1 = scanner device
# $2 = friendly name
DEVICE=$1
FRIENDLYNAME=$2
## Set resolution
# 100,200,300,400,600
RESOLUTION=300
## Create working directory
mkdir -p ${HOME}/brscan/OCR/temp
cd ${HOME}/brscan/OCR/temp
rm *.*
 ### Pourquoi utiliser la partition principale ? Le but de mktemp justement est de travailler sur la mémoire vive.
 ### J'ai la réponse : plus tard dans ce script, le fichier temporaire est utilisé comme base pour d'autre dossier/nom_de_fichier, en juxtaposant l'extension .tif etc
OUTPUT_FILE=$(mktemp ${HOME}/brscan/OCR/temp/brscan.XXXXXX )
echo "scan from ${FRIENDLYNAME}(${DEVICE}) to ${OUTPUT_FILE}" >&2
while [ ! -s ${OUTPUT_FILE} ]; do
    scanimage --device-name "${DEVICE}" --resolution ${RESOLUTION} 1>${OUTPUT_FILE} 2>/dev/null
done
 ### Pourquoi cette ligne ?
#echo gimp -n ${OUTPUT_FILE} 2>/dev/null \; rm -f ${OUTPUT_FILE} | sh &
 ### Si la dernière commande s'est bien déroulée, on converti en monochrome.
 ### Quelle dernière commande ? La "gimp -n ..." ou la scanimage ?
if [ 0 -eq ${?} ]; then
    convert ${OUTPUT_FILE} -monochrome "${OUTPUT_FILE}.tif"
    # convert ${OUTPUT_FILE} "${OUTPUT_FILE}.png"
else
    convert ${OUTPUT_FILE} "${OUTPUT_FILE}.tif"
fi
## Remove temporary file
rm -f ${OUTPUT_FILE}
 ### Inutile, le dossier a déjà été ouvert ligne 32.
# cd ${HOME}/brscan/OCR/temp
## Convert to text
tesseract brscan.*.tif * -l fra
mv *.txt ${HOME}/brscan/OCR


Lis et donne moi tes remarques s'il te plait Edité par Jybz Le 03/02/2020 à 11h47
   
GPE GPE Membre non connecté

Rang

Avatar

Inscrit le : 05/06/2011 à 00h08

Messages: 544

Le 03/02/2020 à 12h24
Jybz :
Ok,
je redonne mon avis :
Code BASH :
#! /bin/sh
##Check dependencies :
LIST="sane-backends
imagemagick
tesseract
tesseract-fra"
STOP=0
for i in ${LIST} ; do
    urpmq ${i} 1>/dev/null 2>/dev/null
    if [ 0 -ne ${?} ]; then
        echo "Le paquet nécessaire "${i}" n'est pas installé." >&2
        STOP=1
    fi
done
if [ 0 -ne ${STOP} ]; then
    exit -1
fi
## Renaming
# $1 = scanner device
# $2 = friendly name
DEVICE=$1
FRIENDLYNAME=$2
## Set resolution
# 100,200,300,400,600
RESOLUTION=300
## Create working directory
mkdir -p ${HOME}/brscan/OCR/temp
cd ${HOME}/brscan/OCR/temp
rm *.*
 ### Pourquoi utiliser la partition principale ? Le but de mktemp justement est de travailler sur la mémoire vive.
 ### J'ai la réponse : plus tard dans ce script, le fichier temporaire est utilisé comme base pour d'autre dossier/nom_de_fichier, en juxtaposant l'extension .tif etc
OUTPUT_FILE=$(mktemp ${HOME}/brscan/OCR/temp/brscan.XXXXXX )
echo "scan from ${FRIENDLYNAME}(${DEVICE}) to ${OUTPUT_FILE}" >&2
while [ ! -s ${OUTPUT_FILE} ]; do
    scanimage --device-name "${DEVICE}" --resolution ${RESOLUTION} 1>${OUTPUT_FILE} 2>/dev/null
done
 ### Pourquoi cette ligne ?
#echo gimp -n ${OUTPUT_FILE} 2>/dev/null ; rm -f ${OUTPUT_FILE} | sh &
 ### Si la dernière commande s'est bien déroulée, on converti en monochrome.
 ### Quelle dernière commande ? La "gimp -n ..." ou la scanimage ?
if [ 0 -eq ${?} ]; then
    convert ${OUTPUT_FILE} -monochrome "${OUTPUT_FILE}.tif"
    # convert ${OUTPUT_FILE} "${OUTPUT_FILE}.png"
else
    convert ${OUTPUT_FILE} "${OUTPUT_FILE}.tif"
fi
## Remove temporary file
rm -f ${OUTPUT_FILE}
 ### Inutile, le dossier a déjà été ouvert ligne 32.
# cd ${HOME}/brscan/OCR/temp
## Convert to text
tesseract brscan.*.tif * -l fra
mv *.txt ${HOME}/brscan/OCR


Lis et donne moi tes remarques s'il te plait


la ligne echo gimp ect... était déjà dans le script récupérer et aussi commentée par #!

j'ai tester ton script et adopter!

Merci


kde4 & xfce4
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie