#!/bin/csh ####################################################################################################################################### # # # T R A N S F O R M A T I O N D ' U N E I M A G E S U I V A N T L A C O U R B E D E H I L B E R T : # # # # # # Utilisation : # # # # $xci/TransformationHilbert.01$Z <ImageArgument> <ImageResultat> [<Directe>] # # # # # # Author of '$xci/TransformationHilbert.01$Z' : # # # # Jean-Francois Colonna (LACTAMME, 20140430165311). # # # ####################################################################################################################################### set ImageArgument=$1 set ImageResultat=$2 set Directe=$3 setArgum Directe $EXIST # A priori, il s'agit de la transformation Directe... # Format $ImageArgument eval "$Format" # Mise en place eventuelle du format de 'ImageArgument'... # if ($dimX == $dimY) then set DiMeNsIoN=`$xcg/MIN2.01$X x=$dimX y=$dimY` set LoG_DiMeNsIoN_=`calcul log2($DiMeNsIoN)+1` set LoG_DiMeNsIoNI=`calculINS log2($DiMeNsIoN)+1` if ($LoG_DiMeNsIoN_ == $LoG_DiMeNsIoNI) then # Test introduit le 20140502090429... # FilSTmpB FLiStE $xci/valeurs_Hilbert2D$X \ profondeur=$LoG_DiMeNsIoNI \ coordonnees_denormalisees=VRAI | \ $SE -e "s/B=/A=/g" | \ $AW ' { print $1 " " $2 } ' | \ $UNI \ > $FLiStE.Hilbert # Generation de la courbe de Hilbert passant par tous les points de l'image carree... # $CA $FLiStE.Hilbert | \ $AW ' { print $1 } ' | \ $SE -e "s/^.*=//" \ > $FLiStE$COORD_X $CA $FLiStE.Hilbert | \ $AW ' { print $2 } ' | \ $SE -e "s/^.*=//" \ > $FLiStE$COORD_Y # Recuperation des coordonnees des points sucessifs de la courbe de Hilbert. # if ($Directe == $EXIST) then $xci/liste_points$X \ A=$ImageArgument \ Ndenormaliser=VRAI \ lister_fond=VRAI \ eX=FAUX eY=FAUX eN=VRAI \ en_tete=FAUX \ epoints=FAUX \ > $FLiStE.NIVEAU # Recuperation des niveaux de 'ImageArgument' dans l'ordre "naturel"... # else $xrv/load_image$X \ A=$ImageArgument \ ne=$tailleI \ Xnormalisees=FAUX \ LISTE_X=$FLiStE$COORD_X \ Ynormalisees=FAUX \ LISTE_Y=$FLiStE$COORD_Y \ Nnormalises=FAUX \ $formatI \ > $FLiStE.NIVEAU # Recuperation des niveaux de 'ImageArgument' dans l'ordre de la courbe de Hilbert. # $DELETE $FLiStE$COORD_X $DELETE $FLiStE$COORD_Y $xci/valeurs_imag$X premiere=1 derniere=$tailleI \ denormalisees=VRAI \ PX=1 PY=0 \ > $FLiStE$COORD_X $xci/valeurs_imag$X premiere=1 derniere=$tailleI \ denormalisees=VRAI \ PX=0 PY=1 \ > $FLiStE$COORD_Y # Recuperation des coordonnees des points sucessifs dans l'ordre "naturel"... # endif $xrv/store_image$X \ ne=$tailleI \ Xnormalisees=FAUX \ LISTE_X=$FLiStE$COORD_X \ Ynormalisees=FAUX \ LISTE_Y=$FLiStE$COORD_Y \ Nnormalises=FAUX \ LISTE_NIVEAU=$FLiStE.NIVEAU \ R=$ImageResultat \ $formatI # Et enfin, generation de l'image '$ImageResultat' contenant les niveaux de '$ImageArgument' # # dans l'ordre de la courbe de Hilbert dans le cas "Directe" et dans l'ordre "naturel" dans # # le cas contraire... # FilSTmpE FLiStE else EROR "Seules les images de format carre et dont les dimensions sont des puissances de 2 sont possibles." # Message introduit le 20140502090429... # endif else EROR "Seules les images de format carre sont possibles." endif