Skip to Content

Nous adressons toutes nos pensées à la famille de notre ami Jérôme !

http://www.forumsig.org/showthread.php/43488-Disparition-de-Phoenix

Recalage d'images sans géoréférencement sous GRASS


Méthodologie de recalage d'images non-géoréférencées sous GRASS : utilisation des fonctions i.group, i.target, i.points/i.vpoints et i.rectify. Utilisation d'un Secteur XY et d'un Secteur géoréférencé (latitude/longitude ou projeté)


Images sans géoréférencement et création d'un Secteur XY

GRASS permet le travail sur des images dite "brutes" c'est-à-dire sans géoréférencement. Il est possible d'utiliser les fonctionnalités de traitement d'images (lissage, rehaussement, classification...) du logiciel sur des images non-recalées ou de recaler ces mêmes images en préalable à tout traitement, soit :

  • en indiquant les coordonnées de points connus dans l'image,
  • à partir d'une image ou d'une planche vecteur de la même zone géographique déjà calée (par pointage des correspondances entre les deux images).

Pour importer l'image brute dans GRASS, commencez par créer au démarrage de GRASS un nouveau Secteur dit X,Y. Un Secteur ou Location de type X,Y n'utilise pas de coordonnées géographiques mais des coordonnées relatives.
Un Secteur X,Y est très rudimentaire, on a par conséquent besoin de peu d'infos pour le créer, dans l'ordre, on devra :

  • lui donner un nom quelconque (par exemple baseXY),
  • lui attribuer un Jeu de données ou Mapset, par défaut on inscrira PERMANENT,
  • éventuellement, rédiger un bref descriptif du type : secteur sans georeferencement pour recalage d'images sat
  • et en revanche, bien paramétrer la Région par défaut et sa résolution qui doit correspondre à celle des images à traiter.

resolution EW : 100
resolution NS : 100

Attention : choisir une résolution trop faible conduira à une perte d'information au moment de l'import des images ou des traitements ultérieurs qu'on leur appliquera ; choisir une résolution trop élevée ne fera que ralentir les algorithmes de traitement d'image.
Dans le cas où vous possèderiez des images en provenance de sources variées et avec différents seuils de résolution, il est fortement recommandé de créer un Secteur dédié à l'import de chaque type d'images avec une résolution adaptée.
La bibliothèque d'import/export de formats raster GDAL permet l'import de nombreux formats d'images sans référencement parmi lesquels SPOT, EOSAT, JPEG, TIFF ou PNG. La commande correspondante sous GRASS est r.in.gdal.

Méthodologie de recalage d'images "brutes"

La procédure de recalage se décompose en quatre étapes :

1. la création d'un répertoire regroupant les images à recaler

Il suffit de donner un nom explicite au répertoire devant contenir les images puis de cocher les images à classer dans ce groupe. Le répertoire d'images est particulièrement pratique quand on souhaite recaler de manière simultanée les trois canaux d'une image RGB ou la couverture d'une même zone par différents capteurs (Moyen Infra-Rouge, Proche Infra-Rouge...). Par exemple, i.group name=Saskatchewan_RGB.

2. la création d'un Secteur géoréférencé pour recevoir les images recalées

Par exemple, si l'on dispose de coordonnées UTM de points de l'image, on créera un Secteur possédant les caractéristiques correspondantes en veillant en particulier à l'unité utilisée par le Secteur (par exemple des mètres) ainsi qu'à la résolution de la région comme précédemment.
Dans ce Secteur géoréférencé, on pourra indiquer le nom du groupe d'images à recaler en tapant i.target -c group=Saskatchewan_RGB.
(NB : si on lance i.target à partir du Secteur XY, on écrira alors i.target group=Saskatchewan_RGB location=UTM_canada_m mapset=PERMANENT).

3. le choix de points de recalage dans l'image

La commande i.points possède deux modalités d'exécution :

  • soit on possède les coordonnées de points reconnaissables dans l'image, auquel cas on les pointera dans l'image afin de saisir les coordonnées des points,
  • soit on possède une image déjà recalée de la même zone qui peut servir de référence au calage de l'image brute.

Quoiqu'il en soit, le choix des points de calage doit répondre aux critères suivants :

  • les points de calage doivent être largement répartis sur toute l'image,
  • on en comptera a minima trois, en tenant compte du fait que plus l'image est déformée géométriquement, plus ces points devront être nombreux afin de parvenir à un résultat acceptable,
  • lorsque l'on cale une image par rapport à une autre (par exemple, image satellite par rapport à une carte topographique), on tiendra aussi compte du fait qu'elles ne représentent pas forcément la réalité terrain de la même façon. Par conséquent, on préfèrera choisir les talwegs (axe central des cours d'eau) aux berges des cours d'eau dont la position peut aisément varier avec la saisonnalité, et dans des régions tropicales, on se méfiera des cours changeants des rivières et on leur préfèrera les coins de bâtiments (construits "en dur"), les bifurcations de voies ferrées ou les axes ou carrefours de routes bitumées.

Il est possible de zoomer sur les deux images pour prendre de meilleurs points de correspondance.

Il est primordial de ne pas bâcler cette étape et de la recommencer autant de fois que nécessaire jusqu'à ce que l'erreur RMS renvoyée par GRASS (fonction : Analyze, une fois les points de recalage saisis) soit jugée acceptable.
La bonne répartition des points de calage dans l'image est primordiale : on vise à réduire l'erreur RMS globale et non à optimiser individuellement l'erreur RMS de chacun des points.

A noter : i.points possède une fonction jumelle i.vpoints lorsque l'on cherche à recaler par rapport à une couche de données vectorielles. L'utilisation est similaire.

4. le recalage final de l'image

Du nombre de points de calage que l'on a pointé découle directement l'ordre du polynôme utilisé dans la fonction i.rectify.

3 points - polynôme de degré 1
6 points - polynôme de degré 2
10 points - polynôme de degré 3
15 points - polynôme de degré 4
(les polynômes de degrés supérieurs n'étant pas vraiment gérables, on a quasi résumé l'ensemble des combinaisons possibles).

La syntaxe de la commande i.rectify est la suivante i.rectify group=Saskatchewan_RGB  extension=rec order=2 (si on a saisi 6 points de calage pour nos images).

A l'issue du travail de l'algorithme de recalage i.rectify, le groupe d'images sera automatiquement placé dans le Secteur et le Jeu de données désignés par la commande i.target.

Bon(s) recalage(s)!


Site officiel : GRASS GIS


GNU FDL Copyright (C) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Commentaires

i.points

J'utilise Grass 6.4 avec avec OSX 1.6.8.
Je veux recaler géométriquement un raster scanné dans un référenciel X.Y. non projeté quelconque comme indiqué ici. J'ai suivi point par point cette procédure (création d'un groupe, d'une target). Lorsque j'invoque i.points, la commande semble se dérouler sans erreur, mais je ne vois aucune image sur laquelle cliquer pour positionner mes points-référence. La fenêtre Command output renvoie sous forme de caractères ce qui devrait s'afficher sur un Graphic Monitor (requis d'après l'aide).
Ou est le problème ?
Merci

Poster un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.