Extraction de végétation depuis orthophoto IGN — Guide technique QGIS + Python
Extraction de végétation
depuis une orthophoto IGN
Guide technique — QGIS + Python
1. Contexte et prérequis
Ce guide décrit le workflow complet pour extraire automatiquement des vecteurs de végétation
(polygones) depuis une orthophoto couleur RGB de l’IGN (résolution 20 cm à 2 m), à l’aide de
QGIS et d’un script Python.
Logiciels et bibliothèques requis
• QGIS 3.x (avec flux WMTS IGN configuré)
• Python 3.8+
• Bibliothèques Python : rasterio, numpy, geopandas, shapely, scipy
Installation des dépendances Python :
pip install rasterio numpy geopandas shapely scipy
2. Source d’images — IGN WMTS
L’IGN est la source recommandée pour la France métropolitaine. L’orthophoto BD ORTHO offre
une résolution réelle de 20 cm, bien supérieure à Google Earth, et est directement accessible
via un flux WMTS dans QGIS.
Ajout du flux WMTS dans QGIS
1. Ouvrir QGIS → Panneau « Sources de données » → WMS/WMTS
2. Créer une nouvelle connexion avec l’URL :
[Link]
3. Sélectionner la couche : [Link]
4. Valider et ajouter la couche au projet
Export du raster sur votre emprise
5. Zoomer sur la zone d’intérêt dans QGIS
6. Clic droit sur la couche IGN → Exporter → Sauvegarder en raster
7. Définir la résolution (0.5 à 2 m selon la superficie)
8. Sauvegarder en GeoTIFF (.tif) — ce fichier sera l’entrée du script
⚠️Google Earth n’est pas exportable légalement sous forme raster. Utiliser l’IGN ou tout autre
orthophoto GeoTIFF dont vous disposez.
Page 1 / 4
Extraction de végétation depuis orthophoto IGN — Guide technique QGIS + Python
3. Principe de détection — Indice Excess Green (ExG)
En l’absence de bande infrarouge (NIR), l’indice Excess Green est la méthode la plus fiable sur
images RGB pour isoler la végétation verte :
ExG = 2 × Vert − Rouge − Bleu
Les pixels de végétation verte présentent un canal vert dominant. Un seuil positif sur l’ExG
permet de les séparer de l’urbain, des routes et des sols nus.
Limites à connaître
Problème Cause Solution
Végétation sombre / ombrée ExG faible sous couvert Baisser le seuil ou
d’ombre masquer manuellement
Gazon et forêt confondus Même couleur verte Filtrage par taille de
polygone
Parkings verts, bâches Faux positifs de couleur Nettoyage manuel dans
QGIS
4. Utilisation du script Python
Le script extract_vegetation.py effectue l’ensemble du pipeline de façon automatisée : lecture du
GeoTIFF, calcul ExG, seuillage, vectorisation et nettoyage.
Syntaxe de base
python extract_vegetation.py --input ortho_ign.tif --output [Link]
Paramètres disponibles
Paramètre Défaut Description
--input / -i (obligatoire) Chemin vers le GeoTIFF d’entrée (RGB)
--output / -o (obligatoire) Fichier de sortie : .gpkg, .shp ou .geojson
--seuil / -s 20 Seuil ExG. Baisser si sous-détection, monter si faux
positifs
--surface_min / -m 10 Surface minimale des polygones en m² (filtre bruit)
Exemples d’appel
# Paramètres par défaut
python extract_vegetation.py -i [Link] -o [Link]
# Seuil abaissé pour détecter la végétation sombre
python extract_vegetation.py -i [Link] -o [Link] --seuil 10
Page 2 / 4
Extraction de végétation depuis orthophoto IGN — Guide technique QGIS + Python
# Export Shapefile, filtrage agrégatif à 50 m²
python extract_vegetation.py -i [Link] -o [Link] --surface_min 50
5. Détail du pipeline interne
Le script exécute cinq étapes successives :
Étape 1 — Lecture du raster
Ouverture du GeoTIFF via rasterio. Les trois canaux R, V, B sont extraits sous forme de
tableaux numpy float32. Le CRS et la transformation affine sont conservés pour géorer
correctement les vecteurs de sortie.
Étape 2 — Calcul de l’indice ExG
Application de la formule ExG = 2×V − R − B sur chaque pixel. Les valeurs élevées
correspondent à de la végétation verte ; les valeurs négatives ou proches de zéro
correspondent à du minéral, de l’urbain ou du ciel.
Étape 3 — Seuillage et morphologie binaire
Un masque binaire est généré par seuillage de l’ExG. Deux opérations morphologiques sont
ensuite appliquées :
• Ouverture (3×3) : supprime les îlots parasites isolés
• Fermeture (5×5) : comble les trous dans les polygones
Étape 4 — Vectorisation
La fonction [Link]() convertit le masque binaire en polygones vectoriels
géoréférencés. Un GeoDataFrame geopandas est construit avec le même CRS que l’image
source.
Étape 5 — Nettoyage et export
• Correction des géométries invalides (make_valid)
• Filtrage par surface minimale
• Simplification Douglas-Peucker (tolérance 0.5 m par défaut)
• Lissage léger (buffer aller-retour ±0.5 m)
• Export au format demandé : GeoPackage, Shapefile ou GeoJSON
6. Import du résultat dans QGIS
9. Glisser-déposer le fichier [Link] dans le panneau des couches QGIS
10. Vérifier la superposition avec l’orthophoto IGN
11. Si nécessaire, ajuster le seuil et relancer le script
12. Pour un nettoyage fin : utiliser les outils de sélection manuelle et de suppression QGIS
13. Export final possible en SHP, GeoJSON ou WFS selon l’usage
Page 3 / 4
Extraction de végétation depuis orthophoto IGN — Guide technique QGIS + Python
💡 Astuce : dans QGIS, appliquer un style semi-transparent vert sur la couche de végétation pour
vérifier visuellement la qualité de l’extraction par rapport à l’orthophoto.
7. Guide d’ajustement du seuil ExG
Symptôme observé Action recommandée Valeur indicative
Beaucoup de végétation Baisser --seuil 5 à 15
manquante
Trop de faux positifs (urbain, Monter --seuil 25 à 40
route)
Petits polygones parasites Augmenter --surface_min 25 à 100 m²
nombreux
Polygones trop fragmentés Réduire --surface_min 5 m²
8. Formats de sortie supportés
Extension Format Usage recommandé
.gpkg GeoPackage Usage général QGIS, format ouvert
recommandé
.shp Shapefile ESRI Compatibilité logiciels tiers
.geojson GeoJSON Web, partage, GitHub, APIs
Script et documentation générés avec Claude (Anthropic)
Page 4 / 4