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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 09 January 2009 12:05

skerdreux
Participant actif
Lieu: Nantes
Date d'inscription: 13 Mar 2006
Messages: 112

Image géoréférencée

Bonjour,

Je ne suis pas sûr que cette section soit la bonne pour poser ma question.
Je souhaite géoréférencée une image (JPG ou TIFF).
Je dispose d'un fichier Image (JPG ou TIFF), des coordonnées des 4 coins dans un système X
et mon but c'est, en utilisant seulement du code (donc pas de logiciel comme ArcGis, MapInfo, etc...) géocoder les images. le problème c'est que je ne sais pas comment sont codées les informations de géoréférencement pour les images.
si quelqu'un a une idée je suis preneur.
Bonne journée.

Sylvain


Sylvain K.
CapGemini

Hors ligne

 

#2 Fri 09 January 2009 12:21

philmap
Participant actif
Date d'inscription: 27 Nov 2006
Messages: 59

Re: Image géoréférencée

Hors ligne

 

#3 Fri 09 January 2009 12:52

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: Image géoréférencée

Bonjour,

Plusieurs possibilités s'offre à vous:
Le géotiff comme indiqué par philmap
L'ecw voir le site ermapper
Le tfw (qui ne défini pas le système de projection) qui est le plus simple des trois au niveau code.

Le jpg n'est pas un format d'image conseillé sauf à avoir un Q < 10 , car ce n'est pas une compression sans perte.

Concernant le code la solution sera fortement conditionnée par le langage utilisé, en effet de nombreuses sources sont dispo sur le net la plupart pour le C ou C++. Si c'est ce cadre le format geotiff ou mieux ecw sont "facilement" intégrables.

[edit] j'ajouterai que si vous travaillez sous windows, il vous faudra gérer la structure DIB (cf SDK win32)

A+

Dernière modification par Christophe V. (Fri 09 January 2009 12:54)


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#4 Fri 09 January 2009 12:55

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Image géoréférencée

Bonjour,

ça ne devrait pas être très difficile. Il te faut générer des fichier texte avec extension .tfw contenant :
taille pixel en x
rotation en x
rotation en y
taille pixel en y (négative si l'échelle des y va de bas en haut (hémisphère nord généralement)
x_topleft
y_topleft
(voir http://www.kralidis.ca/gis/worldfile.htm)
donc pour chaque image, tu vas faire :
pixSizeX = xmax - xmin / LargeurImage
pixSizeY = ymax - ymin / hauteurImage
la rotation est sans doute nulle, à vérifier. Mais sinon ça peut aussi se calculer à partir des coordonnées.
puis en bas du fichier
xmin et ymax (si l'échelle des y va de bas en haut, ymin sinon)

bon courage !

Hors ligne

 

#5 Fri 09 January 2009 12:58

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: Image géoréférencée

au fait, le tfw c'est pour les TIFF. Si tu références du JPEG, mets .jgw comme extension, le contenu étant le même.

Hors ligne

 

#6 Fri 09 January 2009 13:05

skerdreux
Participant actif
Lieu: Nantes
Date d'inscription: 13 Mar 2006
Messages: 112

Re: Image géoréférencée

Merci beaucoup pour toutes ces réponses ! je vais regarder ça !


Sylvain K.
CapGemini

Hors ligne

 

#7 Fri 09 January 2009 13:20

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: Image géoréférencée

Bonjour,

Guillaume Sueur a écrit:

négative si l'échelle des y va de bas en haut (hémisphère nord généralement)


Je ne pense pas que cela soit du à l'hémisphère (peut-être à tord), d'une manière générale les images et le monde des fenêtres  en informatique ont pour convention de coder l'origine en haut à gauche avec des Y descendants, contrairement au monde des mathématiciens et autres topographes, cartographes.

Autre chose les deux dernière lignes du tfw indiquent les coordonnées du milieu du pixel haut gauche.

Concernant la rotation, si l'on veut être compatible avec tous les logiciels, il faut qu'elle soit nulle, et donc dans ce cas générer une nouvelle image à partir de l'image originale, pour obtenir une image "plein Nord"

NB: il manque les parenthèses dans le calcul de taille

A+

Dernière modification par Christophe V. (Fri 09 January 2009 13:27)


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#8 Fri 09 January 2009 13:32

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: Image géoréférencée

Un petit complément, le code pour créer un tfw à partir d'une image "plein Nord" en utilisant une structure DIB.
(c'est du VB6)

Code:

Public Sub CreateTFW()


Dim x As Double
Dim y As Double
Dim PixelX As Double
Dim PixelY As Double
Dim nomfich As String
Dim a$

nomfich = fichier.Chemin & fichier.nomfichier & ".tfw"
PixelX = (mEspacebitmap.Right - mEspacebitmap.Left) / mDIBinfo.bmiHeader.biWidth
PixelY = -1 * (mEspacebitmap.Top - mEspacebitmap.Bottom) / mDIBinfo.bmiHeader.biHeight
x = mEspacebitmap.Left + PixelX / 2
y = mEspacebitmap.Top + PixelY / 2

Open nomfich For Binary As #1
a$ = Str(Round(PixelX, 7)) & Chr(13) & Chr(10)
Put #1, , a$
a$ = Str(0) & Chr(13) & Chr(10)
Put #1, , a$
a$ = Str(0) & Chr(13) & Chr(10)
Put #1, , a$
a$ = Str(Round(PixelY, 7)) & Chr(13) & Chr(10)
Put #1, , a$
a$ = Str(Round(x, 3)) & Chr(13) & Chr(10)
Put #1, , a$
a$ = Str(Round(y, 3)) & Chr(13) & Chr(10)
Put #1, , a$
Close #1

End Sub

Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

Pied de page des forums

Powered by FluxBB