inrimage 4.6.9
Définitions de type | Fonctions
inrgvis

Manipulation d'image INRIMAGE au format GVIS. Plus de détails...

Définitions de type

typedef unsigned char uchar
 
typedef void inrgvis
 

Fonctions

inrgvisinrgvis_load (char *nom, int xvis, void(*progress)(char fmt[],...))
 Chargement universelle d'une image INRIMAGE. Plus de détails...
 
void inrgvis_free (inrgvis *data)
 Libère une structure inrgvis. Plus de détails...
 
inrgvisinrgvis_next (inrgvis *data)
 Retourne la donnée suivante, dans la liste des données. Plus de détails...
 
inrgvisinrgvis_prev (inrgvis *data)
 Retourne la donnée précédente, dans la liste des données. Plus de détails...
 
void inrgvis_set_threshold (float thresh)
 Seuil de conversion codage flottant. Plus de détails...
 
inrgvisinrgvis_rbuf (void *buf, Fort_int lfmt[], int xvis)
 Lecture d'un tampon et conversion au format GTK+. Plus de détails...
 
inrgvisinrgvis_rrbuf (inrgvis *data, void *buf, int xvis)
 Relit un tampon. Plus de détails...
 
Fort_int * inrgvis_get_lfmt (inrgvis *data)
 Retourne le tableau de format d'une structure image GVIS.
 
uchar * inrgvis_get_buffer (inrgvis *data)
 Retourne le tampon d'une structure image GVIS.
 

Description détaillée

Manipulation d'image INRIMAGE au format GVIS.

Toutes images sur le disque ou en mémoire doivent être converties dans un format admissible par GTK+ (c'est-à-dire un codage sur 1 octet et une organisation plan/vecteur adéquat). Ces routines font ce travail.

Documentation des fonctions

◆ inrgvis_free()

void inrgvis_free ( inrgvis image)

Libère une structure inrgvis.

Paramètres
structurede donnée à libérer. Cette fonction doit être appelée car inrgvis_load() peut écrire sur le disque.

Référencé par gvis_delete().

◆ inrgvis_load()

inrgvis * inrgvis_load ( char *  nom,
int  flags,
void(*)(char fmt[],...)  progress 
)

Chargement universelle d'une image INRIMAGE.

Paramètres
nomnom de l'image à charger.
flagsmasque de valeur sur :
  • GVIS_DISPLAY_XVIS : méthode d'affichage conforme à xvis, sinon on utilise une méthode alternative.
  • GVIS_DISPLAY_NORGB : traiter les images RGB (ou RGBA) comme des images vectorielles.
progresscallback pour progression ou NULL.
Renvoie
structure de donnée associée à cette image.

L'image est chargée entièrement en mémoire et convertie au format écran (GTK). Comme cette fonction peut écrire des données temporaires sur le disque, il faut appeler la fonction inrgvis_clean() pour libérer toutes les ressources.

Affichage xvis (GVIS_DISPLAY_XVIS).

  • Les images à codage fixe sont converties directement sur 1 octet. Si le codage est plus grand qu'un octet, de l'information est donc perdue.
  • Les images à codage flottant sont multipliées par 255 (dynamique 1 octet) et converties sur un octet. Cette méthode donne de bon résultat sur des images normalisées. Sur des images qui ont des dynamiques plus grande, cela correspond à un seuillage binaire à 1. Ces conversions sont celles faîtes par xvis.

Affichage alternatif (~GVIS_DISPLAY_XVIS).

  • Les images à codage fixe sont divisées par la taille de leur codage puis considérées comme des images à codage flottant. Ceci permet de prendre en compte toute la dynamique des images (le cas 1 octet est identique dans les deux modes d'affichage).
  • Les images à codage flottant sont traitées de la façon qu'avec xvis=0 si on ne trouve pas de pixels ayant une valeur dépassant un certain seuil (S>1). Si ce seuil est dépassé, l'image est convertie directement sur 1 octet. En conséquence, les images qui ont une dynamique sur 256 unités (ou proche) sont mieux traitées. Les images ayant une dynamique beaucoup plus grande ne seront pas mieux visualisées et n'échapperont pas à une normalisation (mais c'est une opération plus lourde, la priorité est la vitesse d'affichage). Le seuil S est fixé empiriquement à 10.
Voir également
inrgvis_free()

◆ inrgvis_next()

inrgvis * inrgvis_next ( inrgvis image)

Retourne la donnée suivante, dans la liste des données.

Paramètres
donnéeconcernée.

◆ inrgvis_prev()

inrgvis * inrgvis_prev ( inrgvis image)

Retourne la donnée précédente, dans la liste des données.

Paramètres
donnéeconcernée.

◆ inrgvis_rbuf()

inrgvis * inrgvis_rbuf ( void *  buf,
Fort_int  lfmt[],
int  flags 
)

Lecture d'un tampon et conversion au format GTK+.

Paramètres
bufadresse du tampon à lire,
lfmttableau de format du tampon,
flagsvoir parametre flags de inrgvis_load(),
Renvoie
structure d'image admissible par GVIS.

Lit un tampon, décrit par lfmt et créé une structure de donnée pour gvis

A faire:
lire directement le cas 1 octet sans composante (ni RGB-plan)

◆ inrgvis_rrbuf()

inrgvis * inrgvis_rrbuf ( inrgvis image,
void *  buf,
int  flags 
)

Relit un tampon.

Paramètres
image
buf
xvisvoir inrgvis_load().

◆ inrgvis_set_threshold()

void inrgvis_set_threshold ( float  thresh)

Seuil de conversion codage flottant.

Paramètres
threshvaleur de seuil.

Pour les conversion d'image en codage flottant, cette fonction fixe le seuil au dela duquel l'image est ramené entre 0 et 1. Cette fonction affecte globalement les routines concernées.