Inspection de pixels

pixrect(bmp,x0,y0,w,h,[ch]) affiche au terminal les pixels d'une imagette de bmp. L'argument optionnel ch permet d'indiquer un canal: 1-2-3 pour g-b-r. Sans l'argument canal, l'impression se fait en flottant.

print-rectangle(rect,bmp[,ch])effectue la m^me opération pour un rectangle au sens du

  • paragraphe gestion interactive, c. à. d. on peut définir la fenêtre avec la souris.

    vec-segment(vec,i1,12)imprime un morceau d'un vecteur (classes TIntVector etc.)

    Gestion interactive de points, de lignes, de rectangles

    On effectue très souvent plusieurs analyses concernant un point précis dans l'image, ou un segment de droite, ou un rectangle. Ces entités sont le plus souvent saisies à l'aide de la souris, puis réutilisées. Pour simplifier ce type de gestion, les points saisis avec la souris sont stockés dans une liste point-list, les lignes dans la variable line-list, les rectangles dans rectangle-list.

    Un exemple d'utilisation: une fonction qui prend comme argument une ligne, comme plot-mu-lap-profile; un premier appel, avec une ligne false, provoque la saisie avec la souris. Lors des appels suivants, on désigne cette même ligne pour le nombre 0. Pour connaitre le numero d'un point "plus ancien", il suffit de regarder la point-list et de repérer son indexe.

    
    plot-mu-lap-profile(false,list(2,4,5))
    plot-mu-lap-profile(0,list(2,5,6))
    

    Tout argument nommé point, line, rectangle dans cette documentation fonctionne selon ce principe. Les fonctions en question, comme par exemple plot-mu-plot, mu-circle, font pour cela appel aux fonctions get-point, get-line, get-rectangle, resp.

    La fonction get-point permet d'obtenir les coordonnées d'un point. Sans argument, ce point est défini par un clic-souris. Ces coordonnées sont toujours relatives à l'image, cad. acquises modulo sequence-width et sequence-height.

    get-point() active la souris pour un clic, ajoute le point a point-list get-point(n) recupère le n-ième point dans point-list (0 pour le plus récent)

    get-point(x,y) inutile en interactif. Résultat: (x . y) get-point cons(x,y)

    Les fonctions get-line et get-rectangle sont analogues.

    get-line(#f) active la souris, ajoute a line-list get-line(n) recupère la n-ième ligne

    Bien entendu, on peut également garder des points dans des variables:

    p2=get-point false p3=list-ref(point-list,5) lap-profile p3