#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
Bonjour,
Un debut de piste:
http://freegeographytools.com/2007/anot … ta-program
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,
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