Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1430 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

shell

n°1687005
Soso971
Posté le 15-02-2008 à 16:30:44  profilanswer
 

Bonjour,
 
Je debute en shell  :pt1cable: , je sollicite votre aide  :jap: . Voici mon prob :
 
J'ai une base de donnée de 4500 images en format .tiff exemple : 0508010015G12I01.tiff. Pour chaque image je dois decoupé un carré 3x3 centré sur un pixel est faire une calcul de moyenne et d'ecart-type sur les valeurs décodées. Avec la commande suivante j'ai reussis a faire le découpage et la convertion .tiff > ASCII pour les 4500 images.
 
find . -name "0508*" -exec convert -crop 3x3+174+213 {} {}.txt \;
 
fichier de sortie :
 
# ImageMagick pixel enumeration: 3,3,255,RGB
0,0: ( 0, 0, 0) black
1,0: ( 0, 0, 0) black
2,0: ( 0, 0, 0) black
0,1: ( 0, 0, 0) black
1,1: ( 0, 0, 0) black
2,1: ( 0, 0, 0) black
0,2: ( 0, 0, 0) black
1,2: ( 0, 0, 0) black
2,2: ( 0, 0, 0) black
 
Je voudrais au final obtenir un fichier qui indiquerait :
 
05,08,01,10,15,moyenne,ecart-type (avec les séparateur)
05,08,01,10,30,moyenne,ecart-type......
...............................................................
 
 
Merci d'avance
 
Configuration: Linux
Firefox 2.0.0.12

mood
Publicité
Posté le 15-02-2008 à 16:30:44  profilanswer
 

n°1687010
matafan
Posté le 15-02-2008 à 16:39:09  profilanswer
 

Comment définis-tu la moyenne et l'écart-type de 9 pixels ? Tu veux la moyenne et l'écart type pour chacune des composantes RVB (soit 3 moyennes et 3 écart types par image) ?

n°1687012
Soso971
Posté le 15-02-2008 à 16:42:51  profilanswer
 

Salut,
 
Une composante suffit car elles sont redondantes.


Message édité par Soso971 le 15-02-2008 à 16:56:14
n°1688740
Soso971
Posté le 19-02-2008 à 17:19:17  profilanswer
 

#! /bin/bash
 
for file in *.txt
do
name=$(echo ${file/[A-Z]*/} | sed 's/../&,/g')
 
moyenne=$(cat "$file" | awk '
BEGIN {
FS=", "
x = 0
}
NR==2 , NR==$FNR {
x=x+$2
}
END {
moy= ( x / ( FNR - 1 ) )
printf "%.2f\n",moy
}')
 
ecart=$(cat "$file" | awk '
BEGIN {
FS=", "
x = 0
}
NR==2 , NR==$FNR {
x= x + ( $2 - '"${moyenne/,/.}"' ) ^ 2
}
END {
ecar=  ( x / ( FNR - 1 ) ) ^  0.50
printf "%.2f\n",ecar
}')
 
echo "${name}${moyenne/,/.},${ecart/,/.}" >> fichier.sortie
done


Aller à :
Ajouter une réponse
 

Sujets relatifs
[Résolu] Unexpected end of file[Script Shell] Problème pour exécuter des commandes
[SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]récuperer variable dans script shell avec formulaire PHP
[SHELL] SSH et login dans un repertoire specifique[Shell]Lancer un shell sur mediaplan
Equivalent de __FILE__ (php) en Shell ?![ shell UNIX ] redirection d'un resultat de tar
new ActiveXObject("Shell.Application") avec firefox 
Plus de sujets relatifs à : shell


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR