libimage  0.25.4
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Énumérations Macros Pages
Fonctions membres publiques | Fonctions membres publiques statiques | Attributs publics | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe Image

Interface de manipulation d'images. Plus de détails...

#include <Image.h>

Graphe d'héritage de Image:
Inheritance graph
Graphe de collaboration de Image:
Collaboration graph

Fonctions membres publiques

void makeMask ()
 Définit l'image comme un masque.
int getWidth ()
 Retourne la largeur en pixel de l'image.
int getHeight ()
 Retourne la hauteur en pixel de l'image.
void setBbox (BoundingBox< double > box)
 Définit l'emprise rectangulaire de l'image et calcule les résolutions.
bool setDimensions (int w, int h, BoundingBox< double > box, double rx, double ry)
 Définit les dimensions de l'image, en vérifiant leurs cohérences.
BoundingBox< double > getBbox () const
 Retourne l'emprise rectangulaire de l'image.
void setCRS (CRS srs)
 Définit le SRS de l'emprise rectangulaire.
CRS getCRS () const
 Retourne le SRS de l'emprise rectangulaire de l'image.
double getXmin () const
 Retourne le xmin de l'emprise rectangulaire.
double getYmax () const
 Retourne le ymax de l'emprise rectangulaire.
double getXmax () const
 Retourne le xmax de l'emprise rectangulaire.
double getYmin () const
 Retourne le ymin de l'emprise rectangulaire.
double getResX () const
 Retourne la résolution dans le sens des X.
double getResY () const
 Retourne la résolution dans le sens des Y.
ImagegetMask ()
 Retourne le masque de donnée associé à l'image.
bool setMask (Image *newMask)
 Définit le masque de donnée et contrôle la cohérence avec l'image.
int x2c (double x)
 Conversion de l'abscisse terrain vers l'indice de colonne dans l'image.
int y2l (double y)
 Conversion de l'ordonnée terrain vers l'indice de ligne dans l'image.
double c2x (int c)
 Conversion de l'indice de colonne dans l'image vers l'abscisse terrain du centre du pixel.
double l2y (int l)
 Conversion de l'indice de ligne dans l'image vers l'ordonnée terrain du centre du pixel.
double getPhaseX ()
 Calcul de la phase dans le sens des X.
double getPhaseY ()
 Calcul de la phase dans le sens des Y.
bool isCompatibleWith (Image *pImage)
 Détermine la compatibilité avec une autre image, en comparant phases et résolutions.
 Image (int width, int height, int channels, double resx, double resy, BoundingBox< double > bbox)
 Crée un objet Image à partir de tous ses éléments constitutifs.
 Image (int width, int height, int channels)
 Crée une Image sans préciser de géoréférencement, ni résolutions, ni rectangle englobant.
 Image (int width, int height, int channels, BoundingBox< double > bbox)
 Crée une Image sans préciser les résolutions.
 Image (int width, int height, int channels, double resx, double resy)
 Crée un objet Image sans préciser le rectangle englobant.
virtual int getline (uint8_t *buffer, int line)=0
 Retourne une ligne en entier 8 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 8 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 4 "cases" sur 8 bits).
virtual int getline (uint16_t *buffer, int line)=0
 Retourne une ligne en entier 16 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 16 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 2 "cases" sur 16 bits).
virtual int getline (float *buffer, int line)=0
 Retourne une ligne en flottant 32 bits. Les canaux sont entrelacés. Si les données ne sont pas intrinsèquement codées sur des flottants 32 bits, une conversion est effectuée.
virtual ~Image ()
 Destructeur par défaut.
virtual void print ()
 Sortie des informations sur l'image.
virtual void printTFW ()
 Sortie du tfw de l'image.

Fonctions membres publiques statiques

static bool dimensionsAreConsistent (double resolution_x, double resolution_y, int w, int h, BoundingBox< double > bounding_box)
 Vérifie la cohérence des dimensions d'image fournies.

Attributs publics

const int channels
 Nombre de canaux de l'image.

Fonctions membres protégées

void computeResolutions ()
 Calcul des resolutions en x et en y, calculées à partir des dimensions et de la bouding box.

Attributs protégés

int width
 Largeur de l'image en pixel.
int height
 Hauteur de l'image en pixel.
bool isMask
 L'image est-ell un masque ?
BoundingBox< double > bbox
 Emprise rectangulaire au sol de l'image.
CRS crs
 CRS du rectangle englobant de l'image.
Imagemask
 Masque de donnée associé à l'image, facultatif.
double resx
 Resolution de l'image, dans le sens des X.
double resy
 Resolution de l'image, dans le sens des Y.

Description détaillée

Interface de manipulation d'images.

Auteur
Institut national de l'information géographique et forestière

Cette classe abstraite permet d'utiliser toutes les images de la même manière, en assurant les définitions des fonctions permettant de lire une ligne, connaître l'emprise géographique de l'image... Toutes ces informations que l'on veut connaître sur une image, qu'elle soit directement liée à un fichier, ou le réechantillonnage d'un ensemble d'images.

On permet l'association d'un masque de donnée, qui n'est autre qu'une image à un canal sur 8 bits qui permet la distinction entre un pixel de l'image qui contient de la vraie donnée de celui qui contient du nodata.

Ne sont gérés que les formats suivant pour les canaux :

Le géoréférencement est assuré par le renseignement des résolutions et du rectangle englobant. Cependant, on peut également gérer des images simples. Dans ce cas, on mettra par convention une bbox à 0,0,0,0 et des résolutions à -1. Aucun test ne sera fait par les fonctions qui utilisent ces attributs. On doit donc bien faire attention à rester cohérent.

Documentation des constructeurs et destructeur

Image::Image ( int  width,
int  height,
int  channels,
double  resx,
double  resy,
BoundingBox< double >  bbox 
)
inline

Crée un objet Image à partir de tous ses éléments constitutifs.

Paramètres
[in]widthlargeur de l'image en pixel
[in]heighthauteur de l'image en pixel
[in]channelnombre de canaux par pixel
[in]resxrésolution dans le sens des X
[in]resyrésolution dans le sens des Y
[in]bboxemprise rectangulaire de l'image

Voici le graphe d'appel pour cette fonction :

Image::Image ( int  width,
int  height,
int  channels 
)
inline

Crée une Image sans préciser de géoréférencement, ni résolutions, ni rectangle englobant.

La résolution sera de 1 dans les 2 sens et le rectangle englobant sera 0,0 width,height

Paramètres
[in]widthlargeur de l'image en pixel
[in]heighthauteur de l'image en pixel
[in]channelnombre de canaux par pixel
Image::Image ( int  width,
int  height,
int  channels,
BoundingBox< double >  bbox 
)
inline

Crée une Image sans préciser les résolutions.

Les résolutions sont calculées à partie du rectangle englobant et des dimensions en pixel.

Paramètres
[in]widthlargeur de l'image en pixel
[in]heighthauteur de l'image en pixel
[in]channelnombre de canaux par pixel
[in]bboxemprise rectangulaire de l'image

Voici le graphe d'appel pour cette fonction :

Image::Image ( int  width,
int  height,
int  channels,
double  resx,
double  resy 
)
inline

Crée un objet Image sans préciser le rectangle englobant.

Paramètres
[in]widthlargeur de l'image en pixel
[in]heighthauteur de l'image en pixel
[in]channelnombre de canaux par pixel
[in]resxrésolution dans le sens des X
[in]resyrésolution dans le sens des Y

Documentation des fonctions membres

double Image::c2x ( int  c)
inline

Conversion de l'indice de colonne dans l'image vers l'abscisse terrain du centre du pixel.

Paramètres
[in]ccolonne
Renvoie
abscisse terrain
static bool Image::dimensionsAreConsistent ( double  resolution_x,
double  resolution_y,
int  w,
int  h,
BoundingBox< double >  bounding_box 
)
inlinestatic

Vérifie la cohérence des dimensions d'image fournies.

Paramètres
[in]resolution_xResolution de l'image, dans le sens des X
[in]resolution_yResolution de l'image, dans le sens des Y
[in]wLargeur de l'image en pixel
[in]hHauteur de l'image en pixel
[in]bounding_boxEmprise rectangulaire au sol de l'image

Voici le graphe des appelants de cette fonction :

BoundingBox<double> Image::getBbox ( ) const
inline

Retourne l'emprise rectangulaire de l'image.

Renvoie
emprise

Voici le graphe des appelants de cette fonction :

CRS Image::getCRS ( ) const
inline

Retourne le SRS de l'emprise rectangulaire de l'image.

Renvoie
CRS

Voici le graphe des appelants de cette fonction :

int Image::getHeight ( )
inline

Retourne la hauteur en pixel de l'image.

Renvoie
hauteur

Voici le graphe des appelants de cette fonction :

virtual int Image::getline ( uint8_t *  buffer,
int  line 
)
pure virtual

Retourne une ligne en entier 8 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 8 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 4 "cases" sur 8 bits).

Paramètres
[in,out]bufferTableau contenant au moins 'width * channels * sizeof(sample)' entier sur 8 bits
[in]lineIndice de la ligne à retourner (0 <= line < height)
Renvoie
taille utile du buffer, 0 si erreur

Implémenté dans ExtendedCompoundMask, Rok4Image, ReprojectedImage, ExtendedCompoundImage, MergeMask, ResampledImage, LibtiffImage, LibkakaduImage, MergeImage, DecimatedImage, ImageDecoder, FileImage, MirrorImage, BilzImage, LibopenjpegImage, LibpngImage, Jpeg2000Image, EmptyImage, CompoundImage, EstompageImage, StyledImage, et RawImage.

Voici le graphe des appelants de cette fonction :

virtual int Image::getline ( uint16_t *  buffer,
int  line 
)
pure virtual

Retourne une ligne en entier 16 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 16 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 2 "cases" sur 16 bits).

Paramètres
[in,out]bufferTableau contenant au moins 'width * channels * sizeof(sample) * 2' entier sur 16 bits
[in]lineIndice de la ligne à retourner (0 <= line < height)
Renvoie
taille utile du buffer, 0 si erreur

Implémenté dans ExtendedCompoundMask, Rok4Image, ReprojectedImage, ExtendedCompoundImage, MergeMask, ResampledImage, LibtiffImage, LibkakaduImage, MergeImage, DecimatedImage, ImageDecoder, FileImage, MirrorImage, BilzImage, LibopenjpegImage, LibpngImage, Jpeg2000Image, EmptyImage, RawImage, CompoundImage, EstompageImage, et StyledImage.

virtual int Image::getline ( float *  buffer,
int  line 
)
pure virtual

Retourne une ligne en flottant 32 bits. Les canaux sont entrelacés. Si les données ne sont pas intrinsèquement codées sur des flottants 32 bits, une conversion est effectuée.

Paramètres
[in,out]bufferTableau contenant au moins 'width * channels' flottant sur 32 bits
[in]lineIndice de la ligne à retourner (0 <= line < height)
Renvoie
taille utile du buffer, 0 si erreur

Implémenté dans ExtendedCompoundMask, Rok4Image, ReprojectedImage, ExtendedCompoundImage, MergeMask, ResampledImage, LibtiffImage, LibkakaduImage, MergeImage, ImageDecoder, DecimatedImage, FileImage, MirrorImage, BilzImage, LibopenjpegImage, LibpngImage, Jpeg2000Image, EmptyImage, CompoundImage, RawImage, EstompageImage, et StyledImage.

Image* Image::getMask ( )
inline

Retourne le masque de donnée associé à l'image.

Renvoie
masque

Réimplémentée dans DecimatedImage.

Voici le graphe des appelants de cette fonction :

double Image::getPhaseX ( )
inline

Calcul de la phase dans le sens des X.

La phase en X est le décalage entre le bord gauche du pixel et le 0 des abscisses, évalué en pixel. On a donc un nombre décimal appartenant à [0,1[.

phases.png
Renvoie
phase X

Voici le graphe des appelants de cette fonction :

double Image::getPhaseY ( )
inline

Calcul de la phase dans le sens des Y.

La phase en Y est le décalage entre le bord haut du pixel et le 0 des ordonnées, évalué en pixel. On a donc un nombre décimal appartenant à [0,1[.

Renvoie
phase Y

Voici le graphe des appelants de cette fonction :

double Image::getResX ( ) const
inline

Retourne la résolution dans le sens des X.

Renvoie
résolution en X

Voici le graphe des appelants de cette fonction :

double Image::getResY ( ) const
inline

Retourne la résolution dans le sens des Y.

Renvoie
résolution en Y

Voici le graphe des appelants de cette fonction :

int Image::getWidth ( )
inline

Retourne la largeur en pixel de l'image.

Renvoie
largeur

Voici le graphe des appelants de cette fonction :

double Image::getXmax ( ) const
inline

Retourne le xmax de l'emprise rectangulaire.

Renvoie
xmax

Voici le graphe des appelants de cette fonction :

double Image::getXmin ( ) const
inline

Retourne le xmin de l'emprise rectangulaire.

Renvoie
xmin

Voici le graphe des appelants de cette fonction :

double Image::getYmax ( ) const
inline

Retourne le ymax de l'emprise rectangulaire.

Renvoie
ymax

Voici le graphe des appelants de cette fonction :

double Image::getYmin ( ) const
inline

Retourne le ymin de l'emprise rectangulaire.

Renvoie
ymin

Voici le graphe des appelants de cette fonction :

bool Image::isCompatibleWith ( Image pImage)
inline

Détermine la compatibilité avec une autre image, en comparant phases et résolutions.

On parle d'images compatibles lorsqu'elles ont :

  • le même SRS
  • la même résolution en X
  • la même résolution en Y
  • la même phase en X
  • la même phase en Y

Les tests d'égalité acceptent un epsilon qui est le suivant :

  • 1 pour mille de la résolution la plus petite pour les résolutions
  • 1% pour les phases
Paramètres
[in]pImageimage à comparer
Renvoie
compatibilité

Voici le graphe d'appel pour cette fonction :

double Image::l2y ( int  l)
inline

Conversion de l'indice de ligne dans l'image vers l'ordonnée terrain du centre du pixel.

Paramètres
[in]lligne
Renvoie
ordonnée terrain
void Image::setBbox ( BoundingBox< double >  box)
inline

Définit l'emprise rectangulaire de l'image et calcule les résolutions.

Paramètres
[in]boxEmprise rectangulaire de l'image

Voici le graphe d'appel pour cette fonction :

void Image::setCRS ( CRS  srs)
inline

Définit le SRS de l'emprise rectangulaire.

Paramètres
[in]boxEmprise rectangulaire de l'image

Voici le graphe des appelants de cette fonction :

bool Image::setDimensions ( int  w,
int  h,
BoundingBox< double >  box,
double  rx,
double  ry 
)
inline

Définit les dimensions de l'image, en vérifiant leurs cohérences.

Paramètres
[in]boxEmprise rectangulaire de l'image
bool Image::setMask ( Image newMask)
inline

Définit le masque de donnée et contrôle la cohérence avec l'image.

Paramètres
[in]newMaskMasque de donnée

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

int Image::x2c ( double  x)
inline

Conversion de l'abscisse terrain vers l'indice de colonne dans l'image.

Paramètres
[in]xabscisse terrain
Renvoie
colonne

Voici le graphe des appelants de cette fonction :

int Image::y2l ( double  y)
inline

Conversion de l'ordonnée terrain vers l'indice de ligne dans l'image.

Paramètres
[in]yordonnée terrain
Renvoie
ligne

Voici le graphe des appelants de cette fonction :


La documentation de cette classe a été générée à partir du fichier suivant :