#!/bin/csh ####################################################################################################################################### # # # A C C E S A V E C L I S S A G E D ' U N E I M A G E : # # C O N V E R S I O N " S T A N D A R D --> F L O T T A N T E " D ' U N E # # I M A G E E N F A U S S E S C O U L E U R S A V E C L I S S A G E : # # # # # # Utilisation : # # # # $xci/acces_lis.11$Z <imageA standard> <imageR flottante> [<attenuation> [<Points7> ... [<Points0>]]]]]]]]] # # # # # # Author of '$xci/acces_lis.11$Z' : # # # # Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### set nomA=$1 set nomR=$2 set attenuation=$3 set Points7=$4 set Points6=$5 set Points5=$6 set Points4=$8 set Points3=$9 set Points2=$10 set Points1=$11 set Points0=$12 # Comme on peut le voir sur l'image 'v $xiirc/JULI.b1.0114$ROUGE' par exemple, il peut # # etre souhaitable de temps en temps de faire que les '$Points?' ne varient pas comme # # des carres strictement. Par exemple pour ce qui est de l'image precedemment citee, on # # aura interet a prendre : # # # # Points7=009 # # # # et '$Points6' a '$Points0' ayant les valeurs calculees ci-apres, c'est-a-dire : # # # # {009,025,049,081,121,169,225} # # # set nomPb=$xiP/bits set nomPp=$xiP/plan #AAAAMMJJhhmmss____:set nomP=$nomPp # set nomP=$nomPb # Nom de la palette d'extraction des differents bits... # if ("$attenuation" == "$K_VIDE") then if ("$nomP" == "$nomPb") then set attenuation=1 # Dans le cas de '$xiP/bits' la ponderation (les puissance de 2) sont contenues dans le # # resultat de l'extraction par definition de '$xiP/bits'. # else endif if ("$nomP" == "$nomPp") then set attenuation=0 # Dans le cas de '$xiP/plan' il faut restaurer une pseudo-ponderation des plans (l'equivalent # # des puissance de 2 finalement...) puisque l'extraction par '$xiP/plan' donne a priori du # # '$BLANC'. # else endif else endif set Coef1n=2 set Coef0n=1 # Definition des coefficients du polynome du premier degre definissant le passage du # # numero 'NuMeRo' a la variable du polynome du second degre qui suit. La variable # # '$PoInTs1D' sera donc definie par : # # # # PoInTs1D = (($Derniere - $NuMeRo) * $Coef1n) + $Coef0n # # # set Coef2P=1 set Coef1P=0 set Coef0P=0 # Definition des coefficients du polynome du second degre definissant la taille des noyaux # # de convolution. La variable '$PoInTs2D' sera donc definie par : # # # # PoInTs2D = ((($Coef2P * $PoInTs1D) + $Coef1P) * $PoInTs1D) + $Coef0P # # # alias Gcoeff 'set NoM=\!:1 ; set NuMeRo=\!:2 ; \\ @ PoInTs1D = (($Derniere - $NuMeRo) * $Coef1n) + $Coef0n ; \\ @ PoInTs2D = ((($Coef2P * $PoInTs1D) + $Coef1P) * $PoInTs1D) + $Coef0P ; \\ eval "set TeSt=$K_DOLLAR$NoM" ; \\ if ("$TeSt" == "$K_VIDE") eval "set $NoM=$PoInTs2D" ; \\ unset NoM NuMeRo PoInTs1D PoInTs2D TeSt' # Procedure de generation des nombres de points des differents noyaux de convolution. # set Premiere=0001 set Derniere=0008 Gcoeff Points0 $Premiere Gcoeff Points1 0002 Gcoeff Points2 0003 Gcoeff Points3 0004 Gcoeff Points4 0005 Gcoeff Points5 0006 Gcoeff Points6 0007 Gcoeff Points7 $Derniere # Generation des nombres de points des differents noyaux de convolution, ou '$Points7' # # correspond aux poids forts (2 puissance 7) et '$Points0' aux poids faibles (2 puissance 0). # set nomT=$xT/`Genom4` # ATTENTION, c'est 'Genom4' et non point 'genom' qui est utilise afin de limiter la longueur # # des noms de fichier crees ci-apres... # alias substit 'set PlAn=\!:1 ; \\ $xci/substitue$X A=$nomA p=$nomP$K_sepP$PlAn substitution=L_SUBSTITUTION_ROUGE R=$nomT$K_sepP$PlAn $formatI ; \\ unset PlAn' # Procedure d'extraction des 8 plans de bits... # substit 01 substit 02 substit 04 substit 08 substit 10 substit 20 substit 40 substit 80 # Extraction des 8 plans de bits... # alias convol 'set PlAn=\!:1 ; set PoInTs=\!:2 ; set NuMeRo=\!:3 ; \\ $xci/acces$X A=$nomT$K_sepP$PlAn convertir=VRAI $formatI | \\ $xci/convol.01$X standard=FAUX points=$PoInTs noyau_carre=FAUX R=$nomT$K_sepP$NuMeRo $formatI ; \\ unset PlAn NuMeRo PoInTs' # Procedure de filtrage des 8 plans de bits... # convol 01 $Points0 $Premiere convol 02 $Points1 0002 convol 04 $Points2 0003 convol 08 $Points3 0004 convol 10 $Points4 0005 convol 20 $Points5 0006 convol 40 $Points6 0007 convol 80 $Points7 $Derniere # Convolution des 8 plans de bits en convoluant beaucoup les bits de poids faible et tres # # peu les bits de poids fort. # $xci/accumule.01$X A=$nomT$K_sepP premiere=$Premiere derniere=$Derniere standard=FAUX attenuation=$attenuation R=$nomR $formatI $DELETE $nomT$K_sepP?? $DELETE $nomT$K_sepP???? # Puis grand nettoyage... #