Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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: 1143

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

 

Pied de page des forums

Powered by FluxBB