| Prima Homepage ImaLab Generating C++ Modules User Manual The Command Shell Running Imalab Plugin Process Pixels and Images Interactive selection Graphics: plots, profiles Image file I/O Image display Connectivity Analysis Image Processing(1) Gaussian operators Technical Documentation Creating New Modules Tutorial Tutorial Download | Graphics: plots, profilesAffichages d'opérateurs: profils, courbes, reliefs Pour l'affichage de courbes, on fait appel à gnuplot. Toutes les fonctions (presque) initialisent gnuplot si cela n'a pas déjà été fait. Les fonctions suivantes affichent un "profil", cad .les valeurs d'un opérateur le long d'un segment de droite. Le segment de droite est défini comme expliqué au paragraphe saisie d'une ligne. Une première série de fonctions affiche des profils multiples, selon différents niveaux de filtrage: gradient, gradient normalisé, laplacien, laplacien normalisé, Une deuxième série de fonctions affiche des profils simples:
Une troisième série de fonctions affiche des profils le long d'une ligne suivi par un générateur de lignes (voir paragraphe précédent). (Fonctions hautement "expérimentales": il y a de nombreux paramètres pour jouer, on peut facilement les adapter pour afficher d'autres profils, par exemple la direction du gradient). Les paramètres: point, dir, level1 indiquent le point initial et la direction de la recherche du point de départ, level1 est le niveau du laplacien pour cette recherche. pred est le prédicat qui définit le contour - les valeurs prévues sont: yp2(level) bord d'une région à laplacien positif, gp2(level) bord d'une région négative, lrp(level,eps) arrête dans le laplacien. Des fonctions plus anciennes existent, avec un jeu de paramètres plus compliqué, notamment: Affichage des profils du gradient en un point, pour plusieurs niveaux de filtrage. Le port à utiliser est gnu-port (sauf mise au point). Mêmes paramètres que la fonction précédente. Affiche le gradient, et le laplacien. Affichage du laplacien du point p, en fonction du niveau de filtrage. Affichage en reliefgnuplot et geomview permettent d'afficher sous forme de relief. Pour essayer, il y a les 2 fonctions, avec des paramètres analogues: zmesh-rect-float(rectangle,img,e) active geomview pour afficher sous forme de "zmesh" la fenêtre de l'image img définie par rectangle; e est un facteur d'échelle, permettant d'adapter la hauteur du relief. splot-rect-grid(rectangle,img,e) affiche sous forme d'une une "grille-3D" - un grid au sens de gnuplot - la fenêtre de l'image img définie par rectangle; e est un facteur d'échelle, permettant d'adapter la hauteur du relief. Ces fonctions initialisent geomview/gnuplot si besoin.
plot-line(ima,y) affiche la ligne y de l'image ima. plot-lines(ima,ly) affiche plusieurs lignes, liste ly mu-plot-line(lima,y) affiche une même ligne dans plusieurs images; liste lima.
La fonction mu-circle affiche un cercle dans chacune des places dans la fenêtre, au même endroit.
La macro to-screen permet d'envoyer des commandes à la fenêtre. Chaque argument est un appel de méthode, écrit comme un appel de fonction. ceci est strictement équivalent à:
Les commandes qu'on peut envoyer à l'écran sont (voir les méthodes de la classe TTrueColor24Win (GlobalVision/src/X11Win/UTrueColor24Win.hh). Elles correspondent directement à des fonctions X; par exemple, la commande DrawString appèle la fonction XDrawString documentée dans le Xlib Reference Manual (p.166).
Fonctions
La fonction init-gnuplot crée un pipe Unix vers gnuplot; ce pipe correspond au port-ravi gnuplot-port. En écrivant dans ce port, toute fonction peut commander gnuplot. La fonction to-gnu facilite l'envoi d'une commande courte; cette fonction envoie son argument,puis ajoute une fin de ligne et un flush. La fonction init-gnuplot est appelé automatiquement par les fonctions "splot-..." décrites ci-après, on n'a donc pas à s'en soucier. Le gnuplot-port est fermé automatiquement à la sortie de imalab. Possibilités d'affichage: splot-grid(port,img,x0,y0,l,e) affiche une grille 3-D (grid) représentant le relief d'une fenêtre carrée de l'image img. La fenêtre a pour point supérieur gauche (x0,y0) et le coté l; e est un facteur d'échelle, pour adapter l'allure du relief. Le port sera gnuplot-port; utiliser *scstdout* pour voir ce qui est envoyé à gnuplot. Cette fonction est analogue à la fonction zmesh-float (voir le paragraphe ci-après sur geomview). Exemple: laplacien d'une imagettesplot-grid(gnuplot-port,mflap[4],60,80,20,20) Commandes gnuplot utiles à connaitreA envoyer à l'aide de la fonction to-gnu (par exemple).Pour plus de détail voir la brochure Gnuplot, version 3.7
http://www.geomview.org/ La situation est parfaitement analogue à celle de gnuplot. Notamment, le fonctions init-geomwview, q-geomview sont appelées automatiquement selon besoin.
Possibilités d'affichage: Il y a plusieurs fonctions avec des paramètres plus ou moins identiques (même prototype pour les fonctions). zmesh-rect-float(rectangle,img,e) affiche sous forme de "zmesh" (relief quadrillé) la fenêtre de l'image img définie par rectangle; e est un facteur d'échelle, permettant d'adapter la hauteur du relief. zmesh-float(port,img,x0,y0,w,h,e) affiche sous forme de "zmesh" (relief quadrillé) une fenêtre de l'image img. La fenêtre a pour point supérieur gauche (x0,y0), largeur w, hauteur h; e est un facteur d'échelle, permettant d'adapter l'allure du relief. Le port sera geom-port, sauf mise au point. zmesh-byte(port,img,x0,y0,l,c) affiche de facon analogue le canal c d'un bitmap possedant des canaux (méthode GetPixelByte à 3 arguments). |