#!/bin/csh ####################################################################################################################################### # # # D E T O U R A G E E N N O I R D ' U N E I M A G E E N V R A I E S C O U L E U R S : # # # # # # Utilisation : # # # # $xci/detourage.13$Z <imageA> <imageR> [<Sgradient> [<Sfiltre> [<EtLogique> [<MessageErr> [<Conv> [<FConv> [<Dil> [<NDil>]]]]]]]] # # . # # /|\ # # | # # ------------ "3" parce que travaille sur les trois composantes (ROUGE, VERTE et BLEUE) # # # # # # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * # # * * * ** * * * * * ** * # # * * * * * * * * * * * * * * * # # * * * * * * * * * * * * * # # * * * * * * * * * * * * * * * # # * * * * * * * * * * * * * * * # # * * * * * * * * * * * * * * * * * # # * * * * * * * * * * * * * # # * * * * * * * * * * * * * * * # # * * * * ** * * * * * ** # # * * * * * * * * * * * * * * * * * * * * * * # # # # # # ATTENTION : # # # # A compter du 20060606145534, il est # # preferable d'utiliser 'v $xci/detourage.23$Z' # # qui est plus general et moins restrictif... # # # # # # Author of '$xci/detourage.13$Z' : # # # # Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### set nomA=$1 set nomR=$2 set Sgradient=$3 set Sfiltre=$4 set EtLogique=$5 set MessageErr=$6 # Parametre introduit le 20050920185006... # set Convoluer=$7 set FConvol=$8 # Parametres introduits le 20091202094132... # set Dilater=$9 set NDilater=$10 # Parametres introduits le 20140814101720... # setArgum Sgradient 28 setArgum Sfiltre 80 setArgum EtLogique $EXIST # Permet de choisir entre '$xci/and$X' ('$EXIST') et '$xci/multi_02.01$X' ('$NEXIST'), # # l'avantage de '$xci/and$X' etant de conserver les couleurs de l'image Argument... # # Ce choix a ete introduit le 19970725175500, sachant que dans les versions anterieures # # il faut considerer qu'il etait a l'etat '$NEXIST' puisque seul '$xci/multi_02.01$X' etait # # utilise... # setArgum MessageErr $EXIST setArgum Convoluer $NEXIST setArgum FConvol `GetParam $xci/convol.02$X facteur_points` setArgum Dilater $NEXIST # Parametre introduit le 20140814101720 et dont la valeur par defaut assure la compatibilite # # anterieure... # setArgum NDilater `GetParam $xci/dilate.01$X points` FileTmpB nomT # Generation d'un nom temporaire... # execRVB $xci/gradient.01$X A=$nomA%s R=$nomT%s $formatI # Calcul du gradient pour chacune des trois composantes de l'image vraies couleurs Argument. # if ( ("$formatI" == "$format_Suq") \ || ("$formatI" == "$format_Sud") \ || ("$formatI" == "$format_Std") \ || ("$formatI" == "$format_Sdu") \ ) then $xci/gauss$X R=$nomT$W $formatI # Generation systematique d'un champ gaussien du type 'v $xiio/GAUSS.8110' ; en effet, on ne # # peut utiliser cette derniere image que si on est en mode 'Suq', 'Sud', 'Std' ou 'Sdu' # # (c'est-a-dire en format "carre" de dimension lineaire egale a une puissance de 2). # $xci/maximum$X A1=$nomT$ROUGE A2=$nomT$VERTE $formatI \ | $xci/maximum$X A2=$nomT$BLEUE $formatI \ | $xci/seuil$X seuil=$Sgradient $formatI \ | $xci/complement$X $formatI \ | $xci/filtre.01$X N=$nomT$W seuil=$Sfiltre $formatI \ | $xci/acces$X R=$nomT $formatI # Calcul du maximum des trois gradients que l'on seuille, puis que l'on complemente, puis # # qu'enfin on filtre... # else if ($MessageErr == $EXIST) then # Test introduit le 20050920185006 et permettant de supprimer le message qui suit... # EROR "Les seuls formats d'image reconnus par le programme '"'$xci/filtre.01$X'"' sont \c" ECHO "{Suh,Suq,Sud,Std,Sdu} (carree et puissance de 2), ce programme ne peut donc etre utilise." else endif $xci/maximum$X A1=$nomT$ROUGE A2=$nomT$VERTE $formatI \ | $xci/maximum$X A2=$nomT$BLEUE $formatI \ | $xci/seuil$X seuil=$Sgradient $formatI \ | $xci/complement$X $formatI \ | $xci/acces$X R=$nomT $formatI # Calcul du maximum des trois gradients que l'on seuille, puis que l'on complemente. # endif if ($EtLogique == $EXIST) then execRVB $xci/and$X A1=$nomA%s A2=$nomT R=$nomR%s $formatI else execRVB $xci/multi_02.01$X A1=$nomA%s A2=$nomT R=$nomR%s $formatI endif # Et enfin detourage la ou le gradient est fort... # if ($Convoluer == $EXIST) then $xci/complement$X A=$nomT R=$nomT $formatI if ($Dilater == $EXIST) then $xci/dilate.01$X A=$nomT points=$NDilater R=$nomT $formatI # Introduit le 20140814101720 afin de pouvoir elargir la zone de convolution '$nomT' et # # ainsi pouvoir convoluer de part et d'autre du detourage... # else endif execRVB $xci/convol.02$X A=$nomR%s N=$nomT V=$BLANC F=$BLANC R=$nomR%s fp=$FConvol mncv=FAUX $formatI # Et enfin convolution fonction du gradient inverse (introduit le 20091202094132)... # else endif FileTmpE nomT # Puis destruction des images de manoeuvre... #