#!/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