XVIS (1I)     version 5.2, Inrimage 4.6.9     March 2022

User Intro    Prog Intro    Liste des commandes    Liste des manuels
Table of Contents


NAME

xvis - visualisation d'images sous X-window (version R5).

SYNOPSIS

xvis [-k octets] [-D] [-nu | -nulab] [-nopix] [-d depth] [-P] [-p pas] [-grp nbim] [-hz nbhz] [-zp zpas] [-s matrix-size] [-e exposant] [-iz plan] [-nz nb-plans] [-zloop] [-zl n] [-l n] [-grey] [-col[rvb] | -col1[rvb]] [-tced | -tcedr | -tcn | -tcf | -tc file] [-c254 | -Xtc] [-[x]sh | -[x]csh | -[x]perl script-file] [-Wsh] [-Whelp] [-Wcol] [-f[null] dimx dimy [-fz dimz]] [{-ed[p] input ouput} | {image1...imagek}]
..

DESCRIPTION

xvis affiche des images sur un écran de profondeur 1 bit, 8 bits ou 24 bits. La visualisation peut être monochrome ou vraie couleur sur les écrans 8 et 24 bits. Le programme accepte les images Inrimage, Visilog3 et les fichiers sans en-tête. Ces fichiers peuvent être compressés (.Z ou .gz).

principales fonctionnalités

OPTIONS

-k octets
taille maximum du buffer de données, utilisé pour lire les données et les convertir éventuellement en format 8 bits.
Le buffer d'affichage est alloué indépendamment.
-nu -nulab
Affichage des images seules (-nu) ou avec leur nom (-nulab). Cliquer dans la fenêtre, ou utiliser kill -1 process-id, ou une commande de la fenêtre xvis-shell, pour passer à l'image suivante.
-nopix
Cette option change la façon de garder l'image en mémoire. Par défaut l'image est conservée sur le serveur X sous forme de Pixmap. Avec -nopix elle reste sous forme de tableau dans le programme, ce qui peut ralentir le ré-affichage (scroll, zloop, ...). Sur certaines stations ce mode est nécessaire si la taille de l'image dépasse la taille écran. Le programme commute automatiquement pour les images qui le nécessitent.
Cette option est rejetée en mode édition ou sur les écrans de profondeur 1 bit.
-d depth
Demande d'affichage sur depth bits. Par exemple -d 8 sur un écran 24 bits pour des images monochromes. Vérifier, avec xdpyinfo que l'écran supporte cette profondeur.
-P
Représentation des niveaux de gris selon un algorithme de type Peano sur écrans 1 bit. Cette option est ignorée sur les autres écrans.
-s matrix-size
taille d'affichage du pixel sur les écrans 1 bit : équivalent à un zoom en mode Peano, taille de la matrice de points associée à chaque pixel dans l'autre mode. Dans le cas du pavage, seules les valeurs 2, 3, 6 sont actuellement possibles pour les images codées sur plus d'1 bit. Pour les images 1 bit, on peut avoir aussi les tailles 1 et 4.
-e exposant
on divise l'image à visualiser par 2**exposant. Par exemple, exposant > 0 pour image de max <= 128, ou exposant < 0 pour diminuer le nombre de niveaux de gris ou compenser un exposant trop grand dans le fichier. Avec une table couleur bien choisie, on peut se réserver les valeurs > 128 (bit poids fort a 1) pour du graphique couleur tout en gardant une pleine échelle de gris pour l'image (on ramène les pixels entre 0 et 127, mais avec une table couleur allant de 0 à 255 entre ces 2 valeurs).
-p pas
pas d'échantillonnage ou zoom en X et Y :
si pas est positif on prend 1 pixel et une ligne sur pas, s'il est négatif, chaque pixel et chaque ligne sont répétées -pas fois.
-zp zpas
pas d'échantillonnage en Z. On visualise 1 plan sur zpas (doit être positif).
-iz plan
numéro du premier plan à visualiser, compté à partir de 1. 0 est remplacé par 1. Si plan > NDIMZ on force à NDIMZ.
-nz nb-plans
nombre de plans à utiliser, sans tenir compte du pas d'échantillonnage en Z; par exemple, si nb-plans vaut 10 et zpas 2, on ne verra que 5 plans.
nb-plans est automatiquement ajusté pour tenir compte de la taille de l'image.
Par convention, une valeur de 0 signifie jusqu'à la fin de l'image.
-hz nbhz
Les plans d'une image multi-plans seront affichés horizontalement par rangées de nbhz unités (affichage vertical par défaut). Il faut au moins préciser -hz 1 pour que la taille des rangées puisse ensuite être modifiée dans xvis.
Cette option est refusée sur les écrans 1 bit et avec l'option -nopix. Elle est silencieusement ignorée sur les écrans ne supportant pas les pixmap de taille suffisante (dec5000 par exemple).
-grp nbim
regroupe nbim images successives pour les afficher comme une seule image de nbim plans. Les images doivent être monoplan. Mais on peut l'utiliser avec des images couleur : 3 fichiers ou 1 fichier vectoriel (NDIMV=3).
Cette option est autorisée lorsque les images sont lues sur stdin, mais dans ce cas le paramètre nbim doit être correct, et on ne peut traiter les images couleur en 3 fichiers.
Cette option est refusée sur écrans 1 bit et en mode edit. Elle peut être combinée avec -hz.
-nopix (donc aussi sur les écrans ne supportant pas les
gros pixmap, par exemple certaines decstations).
-zloop
lance automatiquement une boucle de type Z-Loop. Peut être utile avec l'option -nu.
-zl n
facteur de ralentissement lors du bouclage (bouton zloop) sur les plans d'une image : chaque plan est affiché n fois consécutives. Si n est négatif, la boucle change de sens à chaque extrémité, les plans extrêmes étant affichés 2 fois plus longtemps.
-l n
définit le temps d'attente n, en secondes, entre 2 affichages, en mode "boucle" (bouton loop).
-f dimx dimy -fz dimz
signifie que les fichiers donnés sont des images sans en-tête, de taille (dimx,dimy,dimz) et non des images Inrimage. Par défaut dimz vaut 1.
Cette option est incompatible avec -col.
-fnull dimx dimy -fz dimz :
On affiche une image fictive nulle. Par défaut dimz vaut 1. On ne doit pas donner de noms de fichiers.
Cette option est incompatible avec -col ou avec -ed.
-tcn
utiliser les tables couleur "normales", c'est-à-dire linéaires.
-tcf
utiliser la table couleur définie dans l'en-tête des images.
C'est l'option par défaut.
-tc file
initialisation des tables couleur à partir du fichier image file de dimension en X 256. Trois tables identiques si le fichier a moins de 3 lignes, tables R V B à partir des lignes 1, 2, 3 sinon.
Dans le cas des écrans 1 bit, la table couleur est appliquée par le programme sur les données avant leur affichage.
-tced, -tcedr
tables pour le mode édition; dégradé de 0 à 255, sauf pour le pixel 254, qui prend une couleur verte avec -tced et rouge avec -tcedr. D'autre part, lors de l'affichage, on échange les pixels de valeur 254 et 255, afin de voir en couleur les contours, dont la valeur est 255. Cet échange est totalement transparent : lorsqu'on clique sur un point, on obtient la bonne valeur du pixel.
-c254
n'utiliser que 254 couleurs, en ne modifiant pas les couleurs de background ni de foreground. Dans ce cas les valeurs correspondantes de l'image sont remplacées par des valeurs "voisines" (par exemple 0 est remplacé par 3).
-Xtc
Utiliser la table couleur X telle quelle. Les fonctions de modification de table couleur sont ignorées.
-grey
mode affichage en "niveaux de gris"; les images sont affichées telles quelles. Les plans sont présentés les uns à la suite des autres. Toutes les composantes des images vectorielles apparaîssent à la suite les unes des autres.
-col[rvb]
mode "vraie couleur" à 3 fichiers.
Options incompatibles avec -f.
Les images sont traitées par triplets, chaque fichier représentant une composante. On peut définir l'ordre des composantes par une combinaison de 3 lettres, majuscules ou minuscules, prises parmi [r,v,g,b] (par exemple -colrvb). En l'absence d'une telle définition, on regarde si les noms des 3 premiers fichiers se terminent par un '.' suivi de l'une de ces lettres; si on ne peut déterminer d'ordre, on prendra R V B.
Par exemple pour des images i1.r, i1.v, i1.b : vis -col i1.*
Sur un écran 8 bits, la méthode adoptée consiste à prendre 3 bits pour le rouge et le vert, et 2 bits pour le bleu.
-col1[rvb]
mode vraie couleur, avec 3 composantes dans 1 seul fichier. C'est le mode par défaut.
Si l'ordre des composantes n'est pas précisé, on prend RVB.
Si NDIMZ vaut 3, chaque plan contient une composante. Sinon, si NDIMV vaut 3, les composantes correspondent aux 3 éléments de chaque pixel. Si ni NDIMZ ni NDIMV ne valent 3, on passe en monochrome.
-sh | -csh | -perl script-file :
Ces options permettent de choisir l'interprète à utiliser (/bin/sh, /bin/csh, /usr/bin/perl).
script-file est nom du fichier de commandes à charger dans la fenêtre xvis-shell.
Si le nom de l'option est précédé du caractère x (-xsh, -xcsh, -xperl), le fichier est automatiquement exécuté. Si on a donné aussi l'option -Wsh, l'exécution ne débutera qu'après l'apparition de la fenêtre SHELL.
-Wsh
ouverture automatique de la fenêtre xvis-shell.
-Wcol
ouverture automatique de la fenêtre xvis-cmap (modification des tables de couleurs).
-Whelp
ouverture automatique de la fenêtre xvis-help.
-ed[p] input output
visualisation de input (qui peut être composé de 3 fichiers si on donne aussi l'option -col), avec superposition "transparente" de output, et modification de l'image output. Si input et output sont identiques, le programme n'effectue pas la superposition. Si output est égal à /dev/null, le dessin n'a lieu que sur l'écran. Si output est un nom de fichier, l'image doit exister, être codée sur 1 ou 8 bits, et avoir même taille en X et Y que l'image input. Dans le cas de la superposition, on change la valeur des pixels à 255 de l'image input, de façon à ce que seuls apparaissent avec le niveau 255 les pixels de l'image superposée output (cas de contours par exemple). Si de plus, l'une des options -tced ou -tcedr est présente, les points de contour apparaîtront dans une couleur particulière. L'exposant (option -e) n'est pas appliqué à l'image output (on peut en tirer partie pour obtenir des effets de couleur).
Cette option requiert donc 2 ou 4 noms de fichiers.
La variante -edp permet d'obtenir sur stdout la liste des opérations effectuées.
Voir plus loin le fonctionnement du mode edit.
image1...imagek
liste des fichiers à visualiser. Le nombre de fichiers doit être multiple de 3 avec l'option -col. Si aucun nom n'est donné, on lira sur stdin. Cependant, avec les options -col ou -col1, les noms de fichiers sont obligatoires.

FENÊTRE PRINCIPALE

La fenêtre de visualisation se compose de 5 sous-fenêtres disposées verticalement. Les boutons correspondants à un menu sont repérés par '*'.

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.

help
Crée une fenêtre d'aide. Il suffit de cliquer sur un mot clé dans la partie supérieure pour obtenir la description correspondante dans la partie inférieure.
Le bouton close permet de fermer cette fenêtre.
files
Fait apparaître un menu permettant de sélectionner un fichier parmi la liste des images demandées. S'il y a moins de 20 noms, un seul menu apparaît. Dans le cas contraire on obtient un premier menu dont chaque entrée correspond à un groupe de noms. En faisant glisser la souris à l'extérieur de ce menu on obtient un sous-menu avec la liste des images correspondantes.
exit
fin du programme.
loop
Passage en mode boucle : on affiche cycliquement toutes les images demandées. S'il n'y en a qu'une elle est relue et affichée en permanence (pour suivre son évolution par exemple). On arrête la boucle en cliquant une 2ème fois.
re-read
Relecture de l'image courante.
next
affichage de l'image suivante. Ce bouton n'est actif que si on a donné plusieurs images en argument du programme ou si on lit sur stdin.
prev
affichage de l'image précédente. Ce bouton n'est actif que si on a donné plusieurs images en argument du programme.
z-loop
déclenche une boucle d'affichage des plans successifs de l'image courante. N'est en fonction que pour les images de dimension en Z supérieure à 1. Contrairement à ce qui se passe pour la fonction loop, on ne relit pas les données. On obtient ainsi un effet d'animation. On arrête la boucle en cliquant une 2ème fois. La vitesse d'animation est déterminée par l'option -zl ou par le paramètres zloop de la fenêtre de paramètres (chaque plan est affiché n fois).
nextz
affichage du plan suivant en haut à gauche. Équivalent à une boucle z-loop effectuée en pas à pas.
upleft
déplace l'image pour mettre le dernier point sur lequel on a cliqué en haut à gauche de la fenêtre de visualisation.
center
déplace l'image pour mettre le dernier point sur lequel on a cliqué au centre de la fenêtre de visualisation.
colors
Fait apparaître une fenêtre de manipulation des tables couleur. Un 2ème click ferme la fenêtre. Voir ci-dessous pour les détails.
edit
activation / désactivation du mode édition.
Ce bouton n'est actif que si on a donné l'option -ed. L'édition est automatiquement arrêtée (avec écriture des modifications) par les fonctions re-read et exit.
Le principe consiste à mettre à 0 ou 255 des points de l'image (on peut supposer par exemple que 0 représente le "fond" et 255 les points de contour). L'image résultat est lue en mémoire par blocs de lignes contiguës. Les modifications sont faites sur ces données jusqu'à ce qu'on ait besoin d'un autre bloc de lignes, auquel cas les lignes modifiées sont écrites dans le fichier. Les modifications courantes sont sauvées lorsqu'on quitte le mode edit par les boutons edit ou re-read, ou lorsqu'on fait exit.
Lorsqu'on est en mode edit, le bouton edit est en vidéo inverse, et le curseur de la fenêtre image est différent.
Le bouton 1 (gauche) de la souris écrit des points à 0, et le bouton 3 (droite) des points à 255 y compris lors du déplacement de la souris. Si on clique sur le bouton 2 (milieu) on obtient une droite joignant le point courant au point précédent dans la couleur de ce dernier. Si on clique sur le bouton 2 en mode SHIFT, on dessine un rectangle plein, de la couleur du point précédent et ayant pour coins opposés ce point et le point courant (un rectangle à 0 peut servir à "effacer" une zone de l'image). Il est interdit de franchir une limite de plan par un rectangle ou une droite.
La taille des points dessinés à l'écran est fonction du zoom, tandis que la taille des points modifiés dans le fichier est proportionnelle au pas d'échantillonnage (points de 2x2 pour un pas de 2).
Si on a choisit la variante -edp, on obtient sur stdout, la liste des opérations effectuées, sous la forme suivante :
C xx : passage a la couleur xx (0 ou 255).
z n : entrée dans le plan d'indice n (compté à partir de 1).
p x y : tracé du point (x,y) (dans le plan courant).
l x y : ligne jusqu'au point (x,y).
r x y : rectangle jusqu'au point (x,y).
N.B. : les coordonnées sont comptées à partir de 1.
shell
Ouvre une fenêtre d'interface avec le shell unix. Voir ci-dessous.
options
Menu de choix de diverses options.
254 colors : on n'utilise que 254 couleurs (on ne modifie pas les couleurs de background et foreground). Cette option ne devient effective qu'à la lecture de la prochaine image.
calcul min max : autorise le calcul du min et du max de l'image.
move image with mouse-1 : quand ce mode est activé, tout déplacement de la souris avec le bouton de gauche enfoncé entraîne un déplacement de l'image dans la fenêtre.
print points : valide l'impression des coordonnées des points lorsqu'on clique sur l'image, avec le 2e ou le 3e bouton.
print pixel value : valide l'impression de la valeur du pixel dans les mêmes conditions que ci-dessus.
print edit actions : valide l'impression sur stdout des opérations d'édition (voir -edp).
get pixel from file : demande de lire la valeur des pixels dans le fichier image, plutôt que sur l'écran.
new file list : fait apparaître une fenêtre de modification de la liste des images. Si le nom de l'image courante n'est pas dans la nouvelle liste, on affiche la 1ère image de celle-ci.
display z horizontally: change le mode d'affichage des plans d'une image (horizontalement ou verticalement). Voir option -hz.
Z-loop auto-reverse: change le mode de la boucle d'affichage des plans (bouton Z-Loop). En mode auto-reverse, il y a changement de sens lorsqu'on arrive sur les plans extrêmes.
loop auto-reverse: change le mode de la boucle d'affichage des images (bouton Loop). En mode auto-reverse, il y a changement de sens lorsqu'on arrive sur les images extrêmes.
horiz double cursor: Lorsqu'on clique dans l'image, il apparaît 2 curseurs, de même ordonnée et séparés horizontalement de la demi largeur d'image.
define double cursor: Fait apparaître une fenêtre de dialogue pour choisir les paramètres du curseur double. Si la distance choisie entre les 2 curseurs est nulle, on prendra la demi-largeur ou la hauteur d'un plan.
use dble curs. in edit: permet d'utiliser le curseur double en édition, c'est-à-dire d'avoir un double tracé.
text with background : l'écriture de texte se fera sur un fond (couleur de background).
debug mode : équivalent à mettre ou supprimer l'option -D.

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.

clear
remplit la boite de "blanc" (background).
set
remplit la boite de "noir" (foreground).
invert
opération graphique d'inversion dans la boite.
fill
remplit la boite avec la valeur définie dans la fenêtre de dialogue 'fill value'.
copy
sauve dans le CUT_BUFFER7 de X les informations concernant la fenêtre image et la boite courante.
paste
Récupère les informations contenues dans le CUT_BUFFER7 de X. Si la syntaxe est correcte on va copier le contenu de la boite indiquée dans la boite courante. Il faut donc que l'image originale soit encore présente sur l'écran. On peut copier une partie d'une fenêtre xvis dans une autre, ou copier une partie d'une image dans elle-même.
paste text
Le texte contenu dans le CUT_BUFFER0 de X (c'est-à-dire sélectionné à la souris dans une fenêtre de texte quelconque), est copié en haut à gauche de la boite courante. Il est tronqué pour éviter un dépassement à droite. Pas d'écriture si la hauteur de la boite est insuffisante. L'écriture est répétée dans tous les plans de la boite. Le texte est écrit directement sur l'image ou sur un fond de type background selon l'option choisie dans le menu options. La police utilisée est la police choisie par la dernière commande ##!font (voir description des commandes internes de l'interface shell) ou la police par défaut.
L'opération graphique utilisée est celle donnée par le menu OP= (voir ci-dessous). La couleur du texte est donnée par la fenêtre de dialogue fill value.
OP\= src
menu de sélection de l'opérateur à utiliser pour les fonctions de type paste, entre l'image source et l'image destination. Par exemple, OP\= src représente une simple copie, et OP\= src | dst un ou logique entre source et destination.
undo ON
Menu permettant de valider ou d'invalider la fonction undo.
undo
annule, si le menu précédent le permet, la dernière opération set, clear, invert, fill, paste ou paste text (Avant chaque opération, le contenu de la boite est sauvé dans un Pixmap). Cette fonction pose des problèmes sur les systèmes où la taille des Pixmap ne peut dépasser la taille de l'écran.

4. BOITES DE DIALOGUE

paramètres de visualisation
Cette fenêtre permet de modifier les paramètres correspondant aux options -p -zp -iz -nz -zl -e -hz. Attention! la valeur du paramètre zl doit être positive (une valeur négative ou nulle est remplacée par 1). On peut utiliser les touches suivantes pour valider le changement de paramètres :
Return : valide les modifications.
r, Meta-r : valide et relit l'image courante.
n, Meta-n : valide et lit l'image suivante.
p, Meta-p : valide et lit l'image précédente.
fill value
valeur utilisée pour la fonction fill et pour la couleur du texte. On peut modifier la valeur au clavier ou à la souris :
LeftButton : ajoute 1.
MiddleButton : enlève 1.
RightButton : met à 0.
SHIFT + LeftButton : ajoute 10.
SHIFT + MiddleButton : enlève 10.
SHIFT + RightButton : met à 255.
La touche Return effectue l'opération fill.
dump
En cliquant sur le bouton dump on provoque un dump, dans le fichier image indiqué, du contenu de la boite courante. Si le fichier existait, il est ré-initialisé. Les tables couleur courantes sont écrites dans l'en-tête du fichier. L'image sera codée sur 1 bit si la profondeur d'écran est 1 bit, sur 8 bits sinon. Dans le cas d'un écran 24 bits, on obtiendra une image de 3 plans.

5. IMAGE

C'est la fenêtre d'affichage de l'image. Elle comporte 2 scrollbars permettant de visualiser la partie souhaitée.

Utilisation de la souris en mode normal

LeftButton : affichage des coordonnées (comptées à partir de 1) du pixel courant. Sur un écran 8 ou 24 bits, on obtiendra aussi la valeur du pixel d'écran.
MiddleButton : affichage, et impressions sur stdout, des coordonnées et valeur du pixel.
RightButton : affichage, et impressions sur stdout, des coordonnées et valeur du pixel. Le format d'impression est -ix n -iy n -iz n, plus éventuellement -pix=n.
Déplacement LeftButton : avec l'option move image with mouse-1 (voir menu options), l'image suit les mouvements de la souris, sinon il y a affichage en continue des coordonnées pixel.
Notes : Si on a choisi l'option "get pixel from file", la valeur du pixel sera lue dans le fichier et convertie en 8 bits.
Si on a choisi le mode double curseur on obtiendra les coordonnées et valeurs des 2 points visés.

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).

Utilisation de la souris en mode EDIT

Déplacement (sans bouton enfoncé) : affichage coordonnées et valeur du pixel.
LeftButton : met un point à 0. Trace une ligne continue si on déplace la souris.
MiddleButton : trace un segment de droite entre le point courant et le point précédent avec la couleur de ce dernier.
RightButton : met un point à 255 (ou à la valeur courante d'édition). Trace une ligne continue si on déplace la souris.
SHIFT+RightButton : trace un rectangle ayant comme sommets opposés le point courant et le point précédent, en utilisant la couleur du point précédent.
Utilisation du clavier

q, Ctrl-C : fin du programme (idem bouton EXIT).
r : relecture image (idem bouton re-Read).
n, space, return : image suivante (idem bouton Next).
p : image précédente (idem bouton Prev).
Ctrl-n : plan suivant (idem bouton Nextz).
Ctrl-p : plan précédent (idem bouton Prevz).
l : boucle d'affichage des images (idem bouton Loop).
z : boucle d'affichage des plans (idem bouton Z-Loop).
e : début/fin du mode EDIT (idem bouton Edit).
H, ? : ouverture de la fenêtre HELP (idem bouton HELP).
C : ouverture de la fenêtre COLORS (idem bouton COLORS).
S : ouverture de la fenêtre SHELL (idem bouton SHELL).
X : équivaut à cliquer sur le bouton "exp&exec" de la fenêtre xvis-shell. Sans effet si la fenêtre xvis-shell n'est pas active
E :équivaut à cliquer sur le bouton "exec" de la fenêtre xvis-shell. Sans effet si la fenêtre xvis-shell n'est pas active
A : équivaut à cliquer sur le bouton "abort" de la fenêtre xvis-shell. Sans effet si la fenêtre xvis-shell n'est pas active
Ctrl-f : fenêtre de modification de liste de fichiers (idem show/modif file list du menu Options).
Meta-c : sauvegarde des infos de la boîte courante (idem bouton copy).
Meta-p : copie de la boite sauvée par le buffer X, dans la boîte courante (idem bouton paste).
Meta-t : écriture de texte dans la boîte courante (idem bouton paste text).
Meta-i : inversion du contenu de la boîte courante (idem bouton invert).
Meta-u : restauration du contenu précédent de la boîte courante (idem bouton undo).
Uparrow, Shift-Uparrow : augmentation de la luminosité (de 1 ou 10). Équivaut à cliquer avec le bouton du milieu (sans ou avec Shift), sur le bouton +/- de la fenêtre xvis-cmap.
Downarrow, Shift-Downarrow : diminution de la luminosité (de 1 ou 10). Équivaut à cliquer avec le bouton de gauche (sans ou avec Shift), sur le bouton +/- de la fenêtre xvis-cmap.
= : ré-initialisation de la luminosité. Équivaut à cliquer avec le bouton de droite + Shift sur le bouton +/- de la fenêtre xvis-cmap.

HELP

La fenêtre xvis-help comprend un bouton close, une fenêtre de mots clés et une fenêtre de messages. Les mots clés sont affichés avec une indentation correspondant à la hiérarchie des fenêtres. Il suffit de cliquer sur un mot pour avoir la description correspondante.

TABLES DE COULEUR

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.

INTERFACE SHELL

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.

EXEMPLES

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).

SEE ALSO

Voir Inrimage(1i) pour la description des options générales.

BUGS

Pour les ressources X, on se reportera au fichier Xvis.ad
Le mode shell est un peu incomplet : on pourrait définir de nouvelles variables et de nouvelles commandes... Des extensions seront éventuellement faites en fonction des besoins. Limitations dûes à X window
Les variables X pour la taille des fenêtres ou les coordonnées sont copdées sur 16 bits, ce qui interdit de visualiser des images de plus de 65535 lignes ou pixels par ligne. En fait la limite est ramenée à 32767 pour les scroll et les accès aux pixels (variables traitées parfois en short et parfois en unsigned short)

Envoyez vos remarques, questions, bugs, suggestions à jean-paul.chieze@inria.fr.