#1 Sun 24 March 2013 22:22
- sslizz
- Juste Inscrit !
- Date d'inscription: 24 Mar 2013
- Messages: 3
GDAL en c++
Bonjour,
Je suis un debutant en C++. J'utilise la bibliothèque GDAL pour manipuler des GEOTIFF. J'essaye de crée un programme capable de substitué les valeurs X sur une bande B de l'image par une valeur niveau de gris Y. C'est pour ca que j'ai besoin de lire la valeur niveau de gris de chaque pixel. la documentation de la bibliothèque indique qu'il faut utiliser la méthode RasterIO :
float *pafScanline;
int nXSize = poBand->GetXSize();
pafScanline = (float *) CPLMalloc(sizeof(float)*nXSize);
poBand->RasterIO( GF_Read, 0, 0, nXSize, 1,
pafScanline, nXSize, 1, GDT_Float32,
0, 0 );
Cependant, je sais pas comment extraire la valeur du niveau de gris de pafScanline !. quelq'un aurais une idée comment la retrouver? merci d'avance .
Hors ligne
#2 Mon 25 March 2013 09:59
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1159
Re: GDAL en c++
Salut,
ta variable pafScanLine contient nxSize flottants qui correspondent aux pixels de la première ligne de ton raster.
tu peux accéder à chaque pixel en utilisant l'opérateur [] :
Code:
float valeurDuPixel = pafScanline[x];
N'oublie pas de libérer la mémoire avec CPLFree(pafScanLine) à la fin de ton traitement.
Je te conseille de te former sur c++ avant d'utiliser gdal qui demande d'être à l'aise avec des notions telle que les pointeurs et les allocations mémoire.
Hors ligne