Je vous propose d'apprendre ce language à la base des scripts sous Audela en 12 leçons durant 12 minutes !
Télécharger le script des leçons ici.Le sauver dans votre répertoire de Documents (and settings) par exemple.
Charger le script en mémoire : menu Fichier/Lancer script, puis naviguer sur votre disque jusqu'au fichier tutoriel_tcl.tcl.Ce fichier de script possède l'extension .tcl : son contenu est du langage tcl.
Il contient plusieurs fonctions, c'est-à-dire une commande appelable par exemple depuis la console Audela.
- Executons la première fonction : elle s'appelle premier
Rien ne s'affiche : il manque un retour à la ligne à la fin du message à afficher.
Code TCL de la fonction Console Audela #-- Affichage 1 : proc premier {} {
#- Variables d'environnement d'Audela (chemin du rép images, tec.)
global audace
global conf
set message "Hello world !"
::console::affiche_resultat "$message"
}
premier
#
Tout ce qui est précédé d'un "#" dans le code sera du commentaire.
Les noms de variables sont repérables avec un "$" devant.- La deuxième fonction corrige le tir et s'appelle... deuxieme :
Code TCL de la fonction Console Audela #-- Affichage 2 : proc second {} {
#- Variables d'environnement d'Audela (chemin du rép images, etc.)
global audace
global conf
set message "Hello world !"
::console::affiche_resultat "$message\n"
}
deuxieme
# Hello world !- troisieme : savoir compter
Code TCL de la fonction Console Audela proc troisieme {} { #- Variables d'environnement d'Audela (chemin du rép images, tec.)
global audace
global conf
set resultat [ expr 2+2 ]
::console::affiche_resultat "Je sais compter : 2+2=$resultat\n"
}
troisieme
# Je sais compter : 2+2=4- quatrieme : gérer un argument
Code TCL de la fonction Console Audela proc quatrieme { args } { global audace conf
::console::affiche_resultat "Je sais saisir un argument : $args\n"
}
quatrieme Dupond
# Je sais saisir un argument : Dupond- cinquieme : manipuler une liste
Remarque : la numéroation des éléments d'une liste commence à 0. Celle des pixels d'une image commence à 1.
Code TCL de la fonction Console Audela proc cinquieme { args } { global audace conf
set toto 1
set titi 2
set maliste [ list $toto $titi ]
::console::affiche_resultat "Contenu de la liste : $maliste\n"
set element2 [ lindex $maliste 1 ]
::console::affiche_resultat "2ième élément de la liste : $element2\n"
}
cinquieme
# Contenu de la liste : {1,2}
# 2ième élément de la liste : 2
- sixieme : gérer plusieurs arguments
Code TCL de la fonction Console Audela proc sixieme { args } { global audace conf
set arg1 [ lindex $args 0 ]
set arg2 [ lindex $args 1 ]
::console::affiche_resultat "Premier arg : $arg1 - 2ieme arg : $arg2\n"
}
sixieme Dupond Dupont
# Premier arg : Dupond - 2ieme arg : Dupont- septieme : charger une image dans AudACE et l'exploiter
Code TCL de la fonction Console Audela proc septieme { args } { global audace conf
set fichier [ lindex $args 0 ]
::console::affiche_resultat "Affichage de l'image...\n"
loadima $fichier
#- Largeur de l'image FITS contenue dans le mot clef NAXIS de l'entete du fichier FITS :
buf$audace(bufNo) load "$audace(rep_images)/$fichier"
set naxis1 [lindex [buf$audace(bufNo) getkwd "NAXIS1"] 1]
::console::affiche_resultat "Largeur de l'image : $naxis1\n"
}
septieme mon_fichier.fit
#Affichage de l'image...
#Largeur de l'image : 768- huitieme : boucle conditionnelle
Code TCL de la fonction Console Audela proc huitieme { args } { global audace conf
set mavaleur 2
if { $mavaleur==1 } {
::console::affiche_resultat "Mavaleur égale 1\n"
} elseif { $mavaleur>=2 } {
::console::affiche_resultat "Mavaleur supérieure ou égale à 2\n"
} else {
::console::affiche_resultat "Mavaleur autre\n"
}
}
huitieme
#Mavaleur supérieure ou égale à 2- neufieme : boucle
Code TCL de la fonction Console Audela proc neufieme { args } { global audace conf
#-- Méthode 1 :
set nb_elements [ llength $args ]
for {set i 0} {$i<$nb_elements} {incr i} {
set element [ lindex $args $i ]
::console::affiche_resultat "Élément $i de la liste : $element\n"
}
#-- Méthode 2 :
set k 1
foreach element $args {
::console::affiche_resultat "Élément $i de la liste : $element\n"
incr k
}
}
neufieme Toto Titi Tata
#Élément 0 de la liste : Toto
#Élément 1 de la liste : Titi
#Élément 2 de la liste : Tata
#Élément 1 de la liste : Toto
#Élément 2 de la liste : Titi
#Élément 3 de la liste : Tata- dixieme : nourrir une liste
Code TCL de la fonction Console Audela proc dixieme {} { global audace conf
set n 10
#-- maliste contiendra 11 valeurs x^2 :
for {set i 0} {$i<=$n} {incr i} {
lappend maliste [ expr pow($i,2) ]
}
#-- Affichage des éléments de la liste :
set j 0
foreach val $maliste {
::console::affiche_resultat "Le carré de $j est $val\n"
}
}
dixieme
#Le carré de 0 est 0
#Le carré de 1 est 1
...
#Le carré de 10 est 100- onzieme : opération sur les images dans AudeLA
Code TCL de la fonction Console Audela proc onzieme { args } { global audace conf
set fichier1 [ lindex $args 0 ]
set fichier2 [ lindex $args 1 ]
::console::affiche_resultat "Affichage de la 1iere image...\n"
loadima $fichier1
#- Soustraction des 2 images (de meme dimension) :
::console::affiche_resultat "Soustraction des 2 images...\n"
buf$audace(bufNo) load "$audace(rep_images)/$fichier1"
buf$audace(bufNo) sub "$audace(rep_images)/$fichier2" 0
buf$audace(bufNo) save "$audace(rep_images)/soustraction_2images"
::console::affiche_resultat "Soustraction des 2 images sauvée sous soustraction_2images$conf(extension,defaut)\n"
}
onzieme fichier1.fit fichier2.fit
#Affichage de la 1iere image...
#Soustraction des 2 images...
#Soustraction des 2 images sauvée sous soustraction_2images.fit- douzieme : traitement d'un lot d'image présent dans le répertoire de travail : découpage d'une zone repérée par coin inf gauche te coin sup droit
Code TCL de la fonction Console Audela proc douzieme {} { global audace conf
set listefichiers [ lsort -dictionary [ glob -dir $audace(rep_images) -tail *$conf(extension,defaut) ] ]
foreach fichier $listefichiers {
::console::affiche_resultat "Traitement de $fichier...\n"
buf2 load $audace(rep_images)/$fichier
buf2 window { 50 50 700 480 }
buf2 save $audace(rep_images)/$fichier
}
}
douzieme
#Traitement de fichier1.fit
#Traitement de fichier2.fit
#Traitement de fichier3.fit
Dans mauclaire.tcl 17/12/2005 : scripts pour un usage aisé des fonctions d'AudeLA.
Les convolutions : cela permet en appliquant un filtre d'adoucir les images, de les rendre plus accentuée, de détecter les limites ou les gradients, etc.
Nom Fonctionnalité Argumentsbm_masque_flou convolution par un filtre passe-bas effectuant un masque flou d'une image. fichier coefg coefm bm_passe_bas convolution par un filtre passe-bas "éliminant le bruit". fichier efficacité bm_passe_haut convolution par un filtre passe-haut "éliminant les formes". fichier efficacité bm_filtre_median convolution par un filtre median effectuant un genre de "moyenne". fichier efficacité bm_filtre_min convolution par un filtre minimum. fichier efficacité bm_filtre_max convolution par un filtre maximum. fichier efficacité bm_ondelette_gauss convolution d'image par un filtre de forme gaussienne (lisse l'image). fichier efficacité bm_ondelette_mor convolution d'image par un filtre de forme chapeau type morlet (met en évidence les détails noyés dans la nébulosité). fichier efficacité bm_ondelette_mex convolution d'image par un filtre de forme chapeau type mexicain (met en évidence les détails noyés dans la nébulosité). fichier efficacité bm_lucy_ridcharson Déconvolution du type Lucy-Ridcharson permettant de réhausser les contrastes à l'intérieur des nébuleuses. -- bm_ddp DDP (Digital Development Processing) permet de réduire fortement l'effet de saturation des niveaux élevés au profit des niveaux proches du fond du ciel et permet ainsi de laisser apparaître des détails très réels dans les zones surexposées et sous-exposées, mais non saturées. -- bm_cutima découpage d'une zone sélectionnée à la sourie d'une image chargée. l'image doit être chargée bm_zoomima zoom de l'image ou d'une partie sélectionnée de l'image chargée. l'image doit être chargée, le facteur de multiplication bm_logima logarithme d'une image avec des coeficients adpatés a une image brillante. l'image doit être chargée, le facteur de multiplication et facteur d'atténuation bm_fwhm Calcul la fwhm d'un étoile en secondes d'arc. fwhm mesurée, taille d'un pixel (micrometres), longueur focale (mm) bm_somes Effectue la somme moyenne, mediane et ssk d'une serie d'images appariées ou non. nom gégérique des images, nombre d'images bm_renameext Renome l'extension de fichiers en extension par défaut d'Audela. répertoire, extension à renomer bm_renumfile Renome les fichier de numérotation collée au nom. nom générique des images bm_registerplin Régistration planétaire sur un point initial et finale : translation linéaire. nom_générique_fichier (sans extension) bm_sflat créée un flat synthétique (image d'intensité uniforme) de nxp pixels. nom de l'image de sortie, naxis1, naxis2, valeur des pixels. bm_pretrait Effectue le prétraitement d'une série d'images à l'aide du dark, plu, dark de plu. Pas encore de gestion d'optimisation du noir. nom_generique_images_objet (sans extension) nom_dark nom_plu nom_dark_plu bm _sadd Effectue la somme d'une série d'images. nom_générique_fichiers (sans extension)