principales fonctionnalités
1. MESSAGES :
Cette fenêtre contient 5 objets de type label.
2. BOITE A BOUTONS PRINCIPALE :
Cette fenêtre contient les boutons de commande. Certains boutons ne sont pas actifs dans tous les cas. Lorsqu'on "clique" sur un bouton, celui-ci passe en vidéo inverse pendant la durée de la fonction correspondante.
Note : l'envoi du signal 1 (par la commande kill -1 process) a le même effet que de cliquer sur le bouton next (cas de plusieurs images) ou sur re-read (1 seule image). On peut donc lancer xvis dans un shell script et lui faire afficher périodiquement le contenu d'un fichier de travail.
3. 2e BOITE A BOUTONS
Cette fenêtre contient des boutons permettant d'effectuer des opérations
graphiques sur l'image affichée (et non sur le fichier) :
copie ou remplissage de blocs, écriture de texte.
Ces opérations sont limitées à une zone d'intérêt
(toute l'image par défaut).
Cette zone ou boite est définie par 2 coins opposés.
Le premier est choisi en cliquant sur le bouton du milieu avec
la touche SHIFT enfoncée, le deuxième en cliquant sur
le bouton de droite avec la touche SHIFT enfoncée.
En cliquant sur le bouton de gauche, avec SHIFT, on
fait alternativement disparaître et apparaître la boite.
La boite peut occuper plusieurs plans.
Il faut faire dump si on veut sauvegarder le résultat
de ces opérations.
4. BOITES DE DIALOGUE
5. IMAGE
C'est la fenêtre d'affichage de l'image. Elle comporte 2 scrollbars permettant de visualiser la partie souhaitée.
SHIFT+LeftButton : Fait alternativement apparaître et disparaître
le cadre de la zone d'intérêt.
SHIFT+MiddleButton : Définit les coordonnées (X,Y,Z) d'un coin
de la boite.
SHIFT+RightButton : Définit les coordonnées (X,Y,Z) du 2ème coin
de la boite (coin opposé au précédent).
Introduction :
On considère qu'un pixel d'image est formé de 3 composantes
(rouge, verte et bleue),
que l'on notera Rpix, Gpix, Bpix.
Dans une image monochrome, on a égalité des 3 valeurs.
Les composantes (Rcol, Gcol, Bcol) du point de l'écran
sont fonctions de celles du pixel.
La transformation est donnée par les "tables couleur" :
Rcol = Rtab[Rpix].
Dans le cas le plus simple, on a l'identité (Rtab[i] = i).
xvis gère 3 tables couleur (Rtab, Gtab, Btab), une
table de luminosité (Brtab) et 3 tables de masquage
(Rmask, Gmask, Bmask).
La table de luminosité peut être appliquée sur les tables couleur
que l'on veut :
Rcol = Brtab[Rtab[Rpix]]
Par exemple si Brtab est une fonction linéaire de pente
supérieure à 1, on augmentera la luminosité de
l'image.
Lorsqu'on utilise la fonction de masquage, on remplace une partie
des tables couleur principales, par la partie correspondante
des tables de masque :
col = mask[i0+pix] pour k<pix<k+n et
col = tab[pix] pour les autres valeurs de pix.
On peut déplacer ou modifier de manière interactive la zone,
et simuler par exemple un seuillage.
Les tables couleur sont ré-initialisées chaque fois qu'on relit
une image, les origines possibles étant :
un fichier, l'en-tête de l'image, des tables pré-définies, des tables
aléatoires ou les tables courantes.
Les 7 tables du programme peuvent être modifiées point à point,
ou par interpolation linéaire entre 2 points.
La fenêtre de contrôle des tables couleur comporte 5 parties séparées
par un trait épais :
- une boite a boutons principale.
- une zone de dialogue
- une fenêtre d'actions
- une fenêtre de paramètres.
- une fenêtre de visualisation des couleurs.
1. BOITE A BOUTONS PRINCIPALE :
quit
ferme la fenêtre.
apply
applique les modifications demandées. Ce bouton n'est actif
que si le bouton auto est "éteint".
auto
bouton de type toggle.
Lorsqu'il est "allumé", les modifications déclenchées par
les boutons de la fenêtre d'actions sont immédiatement appliquées
à l'écran.
grey *
fait apparaître un menu de choix des tables couleur RGB initiales.
C'est avec ces données que les tables sont initialisées
à chaque lecture d'image. Le label du bouton indique le choix courant, parmi :
from image : tables lues dans l'en-tête de l'image courante (tables
linéaires par défaut).
from file : tables lues dans un fichier (de 1 ou 3 lignes de 256 valeurs)
dont le nom est donné dans la fenêtre de dialogue 'in file'.
grey ; tables linéaires.
current : garder les tables telles quelles.
previous : revenir à l'état précédant la dernière modification.
table1, table2 : tables de pseudo-couleur pré-définies.
random : tables aléatoires fixes (toujours la même condition initiale).
random+ : tables aléatoires avec condition initiale variable.
editG, editR : cette option modifie uniquement la couleur
du pixel 254, pour distinguer les traits
dessinés en mode edit (vert ou rouge, selon le cas).
ordre
menu définissant l'ordre des composantes couleur, utilisé lors du
chargement des tables X à partir des tables du programme.
save
Sauve les tables couleur dans le fichier dont le nom est donné dans la
fenêtre de dialogue 'out file'.
S'il s'agit de l'image courante, les tables sont écrites dans
l'en-tête (à condition qu'il y ait la place), sinon
le fichier doit avoir 3 lignes de 256 points codés sur 1 octet.
Brightness
Bouton de type toggle qui détermine si l'on
applique ou non la table de luminosité aux tables RGB.
R G B
3 boutons de type toggle qui sélectionnent les tables sur
lesquelles on peut appliquer la table de luminosité.
Adjust
Ajustement de la luminosité en fonction du minimum et du maximum
d'intensité de l'image : tous les points inférieurs au min ont une couleur de 0,
les points supérieurs au max ont une couleur de 255, et le reste
de la table est calculé par interpolation linéaire.
+/-
Fait varier le point maximum de la table de luminosité :
- bouton de gauche : +1
- SHIFT + bouton de gauche : +10
- bouton milieu : -1
- SHIFT + bouton milieu : -10
- bouton de droite : mise à 0
- SHIFT + bouton de droite : mise à 255
2. ZONE DE DIALOGUE
in file
entrée du nom de fichier utilisé
par l'option 'from file' du menu de tables couleur.
out file
entrée du nom de fichier de sauvegarde des tables couleur
(voir bouton save ci-dessus).
3. FENÊTRE D'ACTIONS :
Les paramètres utilisés sont définis dans la fenêtre de paramètres, décrite plus loin.
R G B Br
4 boutons de type toggle qui déterminent sur quelles tables
on veut agir. Utilisation de la souris :
- bouton du milieu : sur R, G ou B, met les 3 boutons dans le même
état; sur Br, met les 3 boutons R G B dans l'état inverse
de Br.
- bouton de droite : sur R, G ou B, inverse l'état des 3 boutons;
sur Br, inverse l'état des 4 boutons.
MASK
active le mode "masquage". Dans ce cas, les boutons R G B
opèrent une sélection parmi les 3 tables Rmask, Gmask, Bmask.
affichage des positions courantes
fenêtre d'affichage des valeurs courantes associées aux
opération de décalage des tables R G B Br.
set 1
Associe la couleur col1 au pixel pix1.
Met col1 dans tab[pix1], pour les tables
désignées par les boutons R G B Br MASK.
set 2
Associe la couleur col2 au pixel pix2.
interp
effectue une interpolation linéaire entre les points
P1 (pix1,col1) et P2 (pix2,col2).
interp3
effectue 3 interpolations linéaires :
entre les points
P1 (pix1,col1) et P2 (pix2,col2),
entre (0,tab[0]) et P1,
et entre P2 et (255,tab[255]).
invert
inversion binaire des valeurs des tables (inversion des bits).
reverse
inversion de l'ordre des valeurs des tables.
loop>>
lance une boucle de permutation circulaire vers la droite, du
contenu des tables.
-->>
Décalage vers la droite du contenu des tables.
Si k est le numéro de la table (0 à 3) :
tab[i] = tab[i-delta[k]] pour i >= delta[k], et
tab[i]=0 pour 0<=i<delta[k].
<0>
Annulation des décalages.
<<--
Décalage vers la gauche du contenu des tables.
Si k est le numéro de la table (0 à 3) :
tab[i] = tab[i+delta[k]] pour i <= 255-delta[k], et
tab[i]=255 pour 255-delta[k]<i<=255.
>-->
permutation circulaire vers la droite.
tab[i] = tab[i-delta[k]] pour i >= delta[k],
tab[i]=tab[256-(delta[k]-i)] pour i<delat[k].
<--<
permutation circulaire vers la gauche.
4. FENÊTRE DE PARAMÈTRES
Cette fenêtre permet de modifier 5 types de paramètres : pixel et couleur (pix1, col1, pix2, col2) des points P1, P2 utilisés par les fonctions set 1, set 2, interp, interp3, et la valeur delta du décalage des fonctions de décalage. Pour chaque paramètre on a un bouton de modification (pix1, col1, pix2, col2, delta) et une fenêtre de 4 valeurs (pour les 4 tables R G B Br).
R G B Br
Boutons de type toggle déterminant sur lesquels des 4 éléments
de chaque paramètre (pix1, col1, pix2, col2, delta)
on doit agir.
pick
bouton de type toggle. S'il est allumé,
on pourra choisir les valeurs des paramètres pix ou col
en cliquant sur un point de l'image (les valeurs affichées dépendent
de l'état des boutons R,G,B,Br) :
bouton de gauche : pix1.
SHIFT + bouton de gauche : col1.
bouton du milieu : pix2.
SHIFT + bouton du milieu : col2.
Auto-Set
Si ce bouton est allumé, toute modification de paramètre
provoque automatiquement la répétition de la dernière
action demandée (set 1, set 2, interp, interp3).
modification des paramètres
On peut modifier les paramètres de différentes façons :
1. au clavier. Il faut alors appuyer sur la touche Return
pour valider les modifications dans la fenêtre choisie (ce qui déclenche
la modification des tables en mode Auto-Set).
2. en cliquant sur une valeur. Dans ce cas les boutons de la souris
ont un rôle particulier:
bouton de gauche : +1
SHIFT + bouton de gauche : +10
bouton du milieu : -1
SHIFT + bouton du milieu : -10
bouton de droite : mise à 0
SHIFT + bouton de droite : mise à 255
3. en cliquant sur l'un des boutons pix1, col1, pix2, col2, delta.
Dans ce cas l'état des boutons R,G,B,Br détermine
lesquelles des 4 valeurs de la fenêtre correspondante sont concernées.
Comme ci-dessus, les boutons de la souris jouent un rôle particulier :
bouton de gauche : +1
SHIFT + bouton de gauche : +10
bouton du milieu : -1
SHIFT + bouton du milieu : -10
bouton de droite : mise à 0
SHIFT + bouton de droite : mise à 255
4. en cliquant sur un point de l'image, si le bouton pick
est allumé.
Cette opération n'entraîne pas de modification
des tables, quel que soit l'état du bouton Auto-Set
L'état des boutons R,G,B,Br détermine
lesquelles des 4 valeurs de la fenêtre correspondante sont concernées.
Le type du paramètre modifié dépend du bouton de la souris utilisé :
bouton de gauche : pix1.
SHIFT + bouton de gauche : col1.
bouton du milieu : pix2.
SHIFT + bouton du milieu : col2.
5. en cliquant sur un point de la fenêtre de visualisation des
couleurs.
Mêmes utilisation de la souris que ci-dessus.
Cette opération n'entraîne pas de modification
des tables, quel que soit l'état du bouton Auto-Set
5. FENÊTRE DE VISUALISATION DES COULEURS
Dans cette fenêtre on affiche une image de 32 lignes identiques,
contenant la suite croissante des valeurs 0-255.
En cliquant sur un point, on peut modifier l'un des paramètres
pix1, col1, pix2, col2, selon
les mêmes règles que ci-dessus, mais indépendamment de l'état
du bouton pick.
Introduction :
Il s'agit d'une interface très rudimentaire entre xvis et le shell unix. On a la possibilité d'exécuter des "programmes" composés d'une alternance de shell scripts et de commandes xvis. Une commande xvis est une ligne de caractères ASCII commençant par les 3 caractères ##!, et correspondant le plus souvent à l'action d'un bouton (re-read, next, etc). Dans les shell scripts on peut utiliser des variables réservées, que xvis substituera avant d'appeler le shell (par exemple : $im sera remplacé par le nom de l'image, $x0 par la coordonnée X du coin haut gauche de la boite d'intérêt...). D'autre part on peut re-diriger stdout de xvis (impression des coordonnées des points sur lesquels on clique, ou de la liste des actions d'édition) sur stdin d'un shell script, et stdout d'un shell script sur une entrée de commande de xvis (envoie de commandes ##!...).
La fenêtre xvis-shell comprend 4 parties séparées par un trait épais :
- une boite à boutons
- une fenêtre pour les commandes, composée de 3 parties :
une sous-fenêtre d'exécution, une sous-fenêtre d'entrée de commandes et une
boite à boutons.
- une fenêtre d'entrée de sélection de fichier
- une fenêtre d'affichage du contenu du fichier.
Le texte des sous-fenêtres d'exécution et d'entrée de commande peut être modifié au clavier (ce sont des Athena TextWidget).
1. BOITE A BOUTONS
quit
ferme la fenêtre.
expand
Copie le contenu de la sous-fenêtre d'entrée de commandes dans la sous-fenêtre
d'exécution en substituant les variables réservées ($im, $x0, $y0 ...)
Voir plus loin pour la liste de ces variables.
expand+
Ajoute à la sous-fenêtre d'exécution,
le contenu de la sous-fenêtre d'entrée de commandes,
en substituant les variables réservées.
exec
Commence ou continue (si elle a été suspendue par ##!pause)
l'exécution du contenu de la sous-fenêtre d'exécution.
Les lignes commençant par ##! sont interprétées par xvis.
Les autres groupes de lignes sont traitées comme des shell scripts.
Le bloc en cours d'exécution est mis en vidéo inverse.
Si les premiers caractères d'un shell script comportent
les séquences |, <| ou >|, on effectue les re-directions
d'entrées sorties suivantes :
| ou <| : on re-dirige stdout de xvis sur stdin
du script.
>| : re-dirige stdout du script sur l'entrée de
commande de xvis.
Par exemple, '>|echo "##!ct_map(random)"' installera
une table couleur aléatoire.
Voir plus loin pour la liste des commandes internes à xvis.
exp&exec
Enchaîne les actions expand et exec.
kill
Tue le processus shell correspondant au
shell script courante.
abort
Tue le processus shell et annule l'exécution du reste
de la sous-fenêtre d'exécution.
close pipe
Ferme, s'il y a lieu, la sortie de xvis connectée sur stdin
du shell courant (pour provoquer une fin de fichier
dans le script).
2. FENÊTRES DE COMMANDES
Elle comporte 2 sous-fenêtres de type TextWidget modifiables (au clavier ou par coupé/collé à la souris).
sous-fenêtre d'exécution
Elle peut être modifiée, sauf lorsqu'une exécution est en cours.
Son contenu est exécuté tel quel par la fonction exec.
Comme on l'a vu précédemment, les lignes comprises entre
2 lignes commençant par ##! sont traitées comme des
shell scripts.
sous-fenêtre d'entrée de commandes
Son contenu remplace ou augmente celui de la fenêtre d'exécution
lors des opérations expand ou expand+, après
substitution des variables réservées.
boutons
paused : il s'agit d'un simple indicateur. S'il est en vidéo inverse,
cela signifie que l'exécution en cours a été suspendue (par ##!pause).
Il faut cliquer sur exec pour continuer ou sur abort pour
terminer.
wait : bouton toggle. S'il est allumé,
xvis se mettra en attente de fin d'exécution des shell script.
Dans le cas contraire, une nouvelle commande ne sera pas lancée
tant que la précédente n'est pas terminée, mais les boutons de xvis
restent actifs.
csh, sh : boutons de type toggle pour choisir le shell utilisé.
3. SÉLECTION DE FICHIER
text file
fenêtre de dialogue pour un nom de fichier de commandes.
load
Le fichier désigné dans la fenêtre text file est lue dans
la fenêtre inférieure.
select_all
Le contenu de la fenêtre fichier est copié dans la sous-fenêtre
d'entrée de commandes (pour modification ou exécution éventuelle
par expand, exec).
On peut sélectionner (c'est-à-dire copier dans
la sous-fenêtre
d'entrée de commandes)
une partie du fichier de diverses manières à la souris :
- click bouton de gauche : sélectionne une ligne.
-SHIFT + bouton de gauche : ajoute la ligne à la sélection.
- déplacement + bouton de gauche :
sélection des lignes traversées.
- bouton du milieu : sélection des lignes entre le curseur du texte et
la souris.
- : bouton de gauche sur une ligne commençant par ##!BEGIN :
sélection jusqu'à la prochaine ligne commençant par
##!END ou ##!BEGIN.
- : bouton de gauche sur une ligne commençant par ##!SELECT nom-de-bloc :
sélection jusqu'au bloc de lignes correspondant, c'est-à-dire
commençant par "BEGIN[-xx] nom-de-bloc".
4. FICHIER DE COMMANDES
Cette fenêtre, de type TextWidget non modifiable, est initialisée
avec le contenu du fichier text file
chaque fois que l'on clique sur le bouton load.
On peut copier, de différentes façons,
tout ou partie du texte dans la sous-fenêtre d'entrée de
commandes :
- avec le bouton select_all : on copie tout le texte.
- avec le bouton de gauche de la souris : toutes les lignes appartenant
à la sélection (même incomplètement) sont copiées.
Rappelons que la sélection commence quand on enfonce le bouton et se termine
quand on le relâche.
En particulier, il suffit de cliquer sur une ligne pour la copier.
- avec SHIFT + bouton de gauche : même comportement que
ci-dessus, mais les lignes sont ajoutées à la fin de la sous-fenêtre
de commandes.
- avec le bouton du milieu de la souris : les lignes, à partir de celle
où se trouve le curseur (positionné par le bouton de gauche),
jusqu'à celle où se trouve le pointeur, sont copiées.
- avec le bouton de droite de la souris : ce bouton a un comportement
normal; il marque la fin de la sélection.
Il faut ensuite cliquer avec le bouton du milieu dans la fenêtre
destinataire pour y copier le texte sélectionné.
5. LISTE DES VARIABLES
$im : nom de l'image courante (3 noms de fichier si couleur sur 3 images).
$imr : nom de l'image courante pour le Rouge (si couleur sur 3 images).
$img : nom de l'image courante pour le Vert.
$imb : nom de l'image courante pour le Bleu.
$im2 : nom de la 2ème image en mode edit.
$ims : noms de tous les fichiers concernant l'affichage courant
(3 en couleur sur 3 images, 2 en edit monochrome, ...).
$x0, $y0, $z0 : coordonnées, comptées à partir de 1,
du coin haut gauche de la dernière boite définie.
$x1, y1, z1 : coordonnées, comptées à partir de 1,
du coin bas droite de la dernière boite définie.
$dx, $dy, $dz : dimensions de la dernière boite définie.
$l2d : longueur en pixels (type float) de la diagonale d'un plan
X,Y de la boite.
$l3d : distance en pixels (type float) entre les coins
haut gauche et bas droite de la boite.
$dimx : nombre de valeurs par ligne de l'image (NDIMX*NDIMV).
$ndimx : nombre de pixels par ligne.
$dimy : nombre total de lignes (NDIMY*NDIMZ).
$ndimy : nombre de lignes par plan.
$ndimz : nombre de plans.
$ndimv : nombre de composantes des pixels.
6. LISTE DES COMMANDES INTERNES
##!# : ligne commentaire
##!! : liste les commandes sur stderr
##!$ : liste les variables réservées, avec leur
valeur courante, sur stderr
##!BEGIN : cette commande est ignoré si elle est
envoyée par programme (dans le pipe).
Elle permet la sélection automatique
d'un bloc de lignes dans un fichier.
Les variantes ##!BEGIN-sh, ##!BEGIN-csh, ##!BEGIN-perl,
permettent de choisir l'interprète pour les scripts.
##!END : fin de bloc dans un fichier.
n'est utilisée que pour la sélection de lignes dans un fichier.
##!EXIT : fin de xvis.
##!abort : fin des commandes en cours (voir bouton abort de la
fenêtre shell).
##!box[(x0,y0,z0,v0[,x1,y1,z1,v1])] : dessine la boite de coordonnées
données. Par défaut utilise les coordonnées
de la dernière boite.
##!center([x],[y],[z]) : place le point image de coordonnées
x,y,z au centre de la fenêtre d'affichage.
##!clear : met à 'blanc' l'intérieur de la boite (voir bouton
clear de la fenêtre xvis).
##!colors : ouvre ou ferme la fenêtre xvis-cmap
(Voir bouton colors de la fenêtre xvis).
Peut être utilisé lorsqu'on a lancé xvis avec les options
-nu -Wsh.
##!copy : même effet que le bouton copy de la fenêtre xvis.
##!ct_interp[(rgb,Rpix1 Gpix1 Bpix1,Rcol1 Gcol1 Bcol1,Rpix2 Gpix2 Bpix2,Rcol2 Gcol2 Bcol2)]
effectue une interpolation linéaire,
sur les tables désignées par rgb,
entre les points P1
(pixel Rpix1 Gpix1 Bpix1, color Rcol1 Gcol1 Bcol1) et
P2 (pixel Rpix2 Gpix2 Bpix2, color Rcol2 Gcol2 Bcol2).
Voir bouton interp de la fenêtre xvis-cmap.
##!ct_interp3[(rgb,Rpix1 Gpix1 Bpix1,Rcol1 Gcol1 Bcol1,Rpix2 Gpix2 Bpix2,Rcol2 Gcol2 Bcol2)]
effectue une triple interpolation linéaire,
sur les tables désignées par rgb,
en utilisant les points P1
(pixel Rpix1 Gpix1 Bpix1, color Rcol1 Gcol1 Bcol1) et
P2 (pixel Rpix2 Gpix2 Bpix2, color Rcol2 Gcol2 Bcol2).
Voir bouton interp3 de la fenêtre xvis-cmap.
##!ct_map(type[,file]) : choix de la table couleur (voir
menu de choix des tables couleur de la fenêtre xvis-cmap).
Le paramètre type définit la table; il est pris parmi les
options du menu (from file, from image, grey, ...).
L'argument file n'est utilisé qu'avec l'option 'from file'.
\fbct_save(filename) : sauve la table couleur courante
dans le fichier filename.
##!ct_set[(rgb,Rpix Gpix Bpix,Rcol Gcol Bcol)] :
définit la couleur d'un point des tables choisies par une combinaison des
3 lettres rgb. Il faut quand même donner 3 valeurs : la composante bleue
correspond au 3e nombre même si on ne veut modifier que la table bleue
(par exemple ##!ct_set(b,0 0 128,0 0 200)).
##!dialog[(label,value,button1,...,buttonN)]
ouvre une fenêtre contenant une boîte de dialogue (si label n'est pas vide)
et des boutons.
Lorsqu'on clique sur un bouton, on reçoit sur stdout une ligne contenant
le nom du bouton, suivi de : et du contenu du champ value.
Le bouton CANCEL est systématiquement ajouté.
Si aucun bouton n'est défini, on forcera un bouton OK (en plus de CANCEL).
##!draw[(cmde,...,cmde)]
effectue la série de commandes graphiques indiquées.
Similaire à ##!edit, mais ne modifie que l'écran.
Pour le détail des commandes graphiques voir ci-dessous.
Par exemple ##!draw(C 240 0 0,z 2,L 1 1 20 1 20 20 1 20 1 1).
##!dump[(filename)] : même effet que le bouton dump de la fenêtre xvis.
##!echo[(string)] : écrit la chaîne string sur stdout.
##!echosel : écrit sur stdout le contenu de la sélection X
courante.
##!edit[(cmde,...,cmde)]
effectue la série de commandes d'édition indiquées.
Une commande peut être on, off ou l'une des commandes qui sont
listées sur stdout en cours d'édition (voir option -edp).
Par exemple ##!edit(on,C 240,z 2,p 1 1,l 20 1,l 20 20).
Il est à noter, qu'avec la commande C, on peut choisir une couleur
de dessin quelconque, qui reste utilisable pour l'édition à la souris.
##!fill[(value)] : remplit la boite avec la valeur value
(par défaut avec la valeur définie par 'fill value').
Voir bouton fill de la fenêtre xvis.
##!font(font_name) : choisit la police de caractères pour les
insertion de texte suivantes (par la commande ##!texte ou le
bouton paste texte).
##!help : ouvre la fenêtre de help.
Peut être utilisé lorsqu'on a lancé xvis avec les options
-nu -Wsh.
##!imlist(filename[ ... filename]) : définit une nouvelle liste
de fichiers.
Même effet que le bouton set de la fenêtre activée par l'entrée
show/modif file list du menu Options.
##!invert : inverse l'intérieur de la boite (voir bouton
invert de la fenêtre xvis).
##!next : affichage de l'image suivante.
##!nextz : affichage du plan suivant.
##!nobox : fait disparaître la boite.
##!params(type val, ...) : même effet que la fenêtre de modification
de paramètres de la fenêtre xvis.
type est le nom du paramètre tel qu'il apparais dans cette fenêtre
(pas zpas iz ...), et val est la valeur souhaitée.
L'ordre est sans importance.
Par exemple : ##!params(nz 4,pas -2).
##!paste[([dstx],[dsty],[dstz])] : même effet que le bouton paste de la fenêtre xvis.
Si on donne des arguments, la copie se fait à l'endroit indiqué,
sans tenir compte de la boîte courante.
##!paste() est équivalent à ##!paste(1,1,1).
##!pause[(nb_sec)] :
Avec un argument, on attend nb_sec secondes avant de continuer.
Sans argument, on suspend l'exécution :
le voyant paused de la fenêtre xvis-shell s'allume et il faut cliquer
soit sur exec pour continuer, soit sur abort pour terminer.
##!prev : affichage de l'image précédente.
##!prevz : affichage du plan précédent.
##!prtvar(varname[,...,varname]) :
écrit sur stdout les valeurs des variables internes de nom donné
(non précédé de $).
Par exemple : ##!prtvar(im,dimx).
##!ptexte([x [y [z]]],[value[/background]],string) : écrit le texte string
à la position donnée par x y z (coordonnées dans l'image,
comptées à partir de 1 du haut du texte.
Les coordonnées par défaut sont 1 1 1.
##!re-read[(filename)] : relit l'image de nom filename
(image courante par défaut).
##!set : met à 'noir' l'intérieur de la boite (voir bouton
set de la fenêtre xvis).
##!texte([value[/background]],string) : écrit le texte string dans le
coin haut gauche de la boite courante, avec la couleur value
et un fond de couleur background
(par défaut la couleur du texte est donnée par
la fenêtre fill value,
et le fond est le fond standard).
Si background est égal à -2, le texte est affiché sur
l'image, au lieu d'un rectangle de fond.
La chaîne string peut contenir des virgules,
mais sera écrite sur une seule ligne.
##!upleft([x],[y],[z]) : place le point image de coordonnées
x,y,z (comptées à partir de 1) dans le coin haut gauche
de la fenêtre image.
##!zloop : alternativement démarrage et arrêt de la boucle en Z.
##!zscroll([incr],[use-zloop-count]) :
Affiche en haut de la fenêtre, selon le même mécanisme que zloop,
un nouveau plan.
Ce plan est celui situé à la distance incr du plan courant,
compte tenu du pas d'échantillonnage en Z (pour incr=1,
on affiche le plan suivant disponible, quel que soit le pas).
Cette fonction détruit le premier plan de la fenêtre d'affichage, au lieu
de faire un scroll.
Si le flag use-zloop-count est donné et non nul, on tient compte
du paramètre de l'option -zl :
il faudra envoyer n fois la commande pour passer au plan suivant.
sous-commandes de la fonction ##!draw
m0, m1 : avec m0, le tracé ne sera visible sur l'écran que si on le demande explicitement par la commande s, ou lors d'un ré-affichage (scrolling ou fenêtre cachée redevenant visible).
s [x0 y0 z0 [dx dy dz]] fait ré-afficher la zone définie par les arguments. Par défaut toute l'image. Une valeur de -1 correspond à 1 pour x0, y0, z0 et à la taille maximum pour dx, dy, dz. A la suite de cette opération les tracés cachés deviennent visibles. Cette fonctionnalité, couplée avec m0 peut être utilisée pour afficher de façon agréable les différents états d'une courbe.
C rr [vv bb]
choisit la couleur (0 à 255) pour le tracé.
Dans le cas d'un affichage couleur, si on ne donne pas les 3 composantes,
rr sera utilisé pour les 3.
Si rr est négatif on utilisera -rr, mais avec la fonction
graphique GXxor (dans ce cas il suffit de tracer une 2ème
fois un objet pour l'effacer).
z n : passage au plan n (compté à partir de 1).
p x y : dessiner un point de coordonnées image x y (comptées à partir de 1).
l x y : dessiner un segment allant du point précédent au point de coordonnées image x y.
r x y : remplit un rectangle allant du point précédent au point de coordonnées image x y.
L x1 y1 ... xn yn trace la ligne polygonale donnée.
a x1 y1 w h ang1 ang2 trace un arc dont le rectangle enveloppant a son coin supérieur gauche en x1, y1, une largeur w et une hauteur h. ang1 est la position angulaire en degrés du début du tracé (0 par défaut) et ang2 est la longueur de l'arc en degrés (par défaut 360 - ang1). Si on ne donne que les paramètres x1, y1, w on obtiendra un cercle de diamètre w.
xvis * -P
visualise une série d'images par algorithme de Peano sur
un écran 1 bit (l'affichage occupera 1 seul point d'écran
par pixel).
xvis -col *
visualise une série d'images couleur ayant des noms
terminés par .r, .v, .g ou .b
zcat *.Z | xvis -grp 16 -hz 4
affichage d'images compressées par groupes de 16.
xvis -col1 img
visualise une image couleur dont les 3 composantes (RVB)
correspondent aux 3 plans du fichier img.
xvis -Wsh -xsh demo file1 ... filen
Lancement d'une démo.
xvis -nu -Wsh images...
affichage des images seules (pour diapos par exemple), mais avec la possibilité
d'effectuer quelques opérations avec la fenêtre xvis-shell.
xvis -p 2 -zp 2 -tc table image
visualise une image multi-plans en sous-échantillonnant (1 pixel sur 2, 1 ligne
sur 2 et 1 plan sur 2).
Les tables couleur sont chargées à partir du fichier table,
de taille en X égale à 256.
xvis -ed image1 image2 -tced
visualisation de la superposition de image1 et image2
pour modifications de image2.
En fait image2 est soit une simple copie de image1
soit une image des contours correspondant à image1.
Avec l'option -tced on les contours apparaîtront dans une couleur
orangée, et l'image originale en niveaux de gris.
xvis -ed image1 image2
Permet de visualiser image1 par transparence sous image2 :
en un point donné, on affiche le pixel de image2 s'il n'est pas nul, le pixel de
image1 sinon.
couleurs :
Pour voir une image de labels, utiliser une table aléatoire.
Pour augmenter la luminosité d'une image "sombre"
ouvrir la fenêtre xvis-cmap (bouton colors) et
cliquer sur le bouton +/- (en haut) avec bouton du milieu + SHIFT;
ou bien placer la souris dans la fenêtre image et utiliser la
touche "flèche_vers_le_haut" avec SHIFT (sans SHIFT pour une modification lente).
Envoyez vos remarques, questions, bugs, suggestions à jean-paul.chieze@inria.fr.