Fonctionnement de l'outil Filtre

L’outil Filtre peut être utilisé pour éliminer les données fictives ou améliorer les entités qui, autrement, ne seraient pas visibles dans les données. De manière générale, les filtres créent des valeurs en sortie à l’aide d’une fenêtre de voisinage de 3x3 cellules en mouvement superposée, qui balaye le raster en entrée. Lorsque le filtre survole chaque cellule en entrée, les valeurs de cette cellule et de ses 8 voisins immédiats sont utilisées pour calculer la valeur en sortie.

Deux types de filtres sont disponibles dans l’outil : passe-bas et passe-haut.

Types de filtres

Le type de filtre Low pass (Passe-bas) applique un filtre de calcul de moyenne au raster en entrée, qui sert essentiellement à lisser les données. Le type de filtre High pass (Passe-haut) améliore les contours et les limites entre les entités représentées dans le raster.

Filtre passe-bas

Un filtre passe-bas lisse les données en réduisant la variation locale et en éliminant le bruit. Il calcule la valeur moyenne pour chaque voisinage 3x3. Il est pour l’essentiel équivalent à l’outil Statistiques focales avec l’option de statistique Mean (Moyenne) Le résultat est le suivant : la moyenne des valeurs maximales et minimales de chaque voisinage est calculée, ce qui permet de réduire les valeurs extrêmes contenues dans les données.

Exemple 1

L’exemple suivant illustre les valeurs de voisinage en entrée d’une cellule de traitement, la cellule centrale avec la valeur 8.

7 5 2 4 8 3 3 1 5

Le calcul de la cellule de traitement (cellule en entrée centrale avec la valeur 8) vise à obtenir la moyenne des cellules en entrée. Il s’agit de la somme de toutes les valeurs en entrée contenues dans le voisinage, divisée par le nombre de cellules du voisinage (3x3=9).

Valeur = ((7 + 5 + 2) + (4 + 8 + 3) + (3 + 1 + 5)) / 9 = 38 / 9 = 4,222

La valeur en sortie de l’emplacement de la cellule de traitement est 4,22.

La moyenne étant calculée à partir de toutes les valeurs en entrée, la plus grande valeur de la liste, à savoir la valeur 8 de la cellule de traitement, est calculée en moyenne.

Exemple 2

Cet exemple montre le raster généré par l’outil Filtre avec l’option Low pass (Passe-bas) sur un petit raster de cellules 5x5.

Pour illustrer la façon dont les cellules NoData sont gérées, les valeurs en sortie avec le paramètre Ignore NoData in calculations (Ignorer NoData dans les calculs) activé (défini sur DATA en Python), puis désactivé (défini sur NODATA en Python), sont les suivantes :

  • Valeurs de cellule en entrée :
    2.000 3.000 4.000 5.000 6.000 2.000 3.000 4.000 NoData 6.000 2.000 3.000 4.000 5.000 6.000 2.000 30.000 4.000 5.000 NoData 1.000 2.000 2.000 3.000 NoData
  • Valeurs de cellule en sortie avec le paramètre Ignore NoData in calculations (Ignorer NoData dans les calculs) activé (les cellules NoData d’une fenêtre de filtre sont ignorées lors du calcul) :
    2.500 3.000 3.800 5.000 5.667 2.500 3.000 3.875 5.000 5.600 7.000 6.000 7.250 4.857 5.500 6.667 5.556 6.444 4.143 4.750 8.750 6.833 7.667 3.500 4.000
  • Valeurs de cellule en sortie avec le paramètre Ignore NoData in calculations (Ignorer NoData dans les calculs) désactivé (la valeur en sortie est NoData si une cellule de la fenêtre de filtre est NoData) :
    NoData NoData NoData NoData NoData NoData 3.000 NoData NoData NoData NoData 6.000 NoData NoData NoData NoData 5.556 6.444 NoData NoData NoData NoData NoData NoData NoData

Exemple 3

Dans l’exemple suivant, le raster en entrée contient un point de données anormal causé par une erreur de collecte de données : Les caractéristiques de calcul de moyenne de l’option Low pass (Passe-bas) ont lissé le point de données anormal.

Filtre avec option Bas
Exemple de sortie de Filtre avec l’option LOW

Filtre passe-haut

Le filtre passe-haut accentue la différence comparative entre les valeurs d’une cellule et ses voisines. Il met en évidence les limites existant entre les entités (par exemple, l’endroit où un plan d’eau rencontre une forêt), améliorant ainsi la netteté des contours entre les objets. Il est généralement appelé "filtre d’amélioration des contours".

Avec l’option High pass (Passe-haut), les neuf valeurs z en entrée sont pondérées de sorte que les variations de faible fréquence sont supprimées et que la limite entre les différentes régions est mise en évidence.

Le filtre 3x3 de cette option est le suivant :

-0.7 -1.0 -0.7 -1.0 6.8 -1.0 -0.7 -1.0 -0.7

Notez que la somme des valeurs du noyau est 0, étant donné que les valeurs sont normalisées.

Le filtre passe-haut est pour l’essentiel équivalent à l’outil Statistiques focales avec l’option de statistique Sum (Somme) et un noyau pondéré spécifique.

Les valeurs z en sortie fournissent une indication du lissage de la surface mais elles n’ont aucun rapport avec les valeurs z d’origine. Les valeurs z sont distribuées par rapport à zéro, avec des valeurs positives en haut d’un contour et des valeurs négatives en bas. Les zones où les valeurs z sont proches de zéro correspondent aux régions où la pente est presque constante. Les zones dont les valeurs sont proches de z-min et z-max sont celles où la pente change rapidement.

Exemple 1

L’exemple suivant illustre les calculs pour une cellule de traitement (la cellule centrale avec la valeur 8) :

7 5 2 4 8 3 3 1 5

Le calcul pour la cellule de traitement (cellule centrale avec la valeur 8) est le suivant :

Valeur = ((7*-0.7) + (5*-1.0) + (2*-0.7) + (4*-1.0) + (8*6.8) + (3*-1.0) + (3*-0.7) + (1*-1.0) + (5*-0.7)) = ((-4.9 + -5.0 + -1.4) + (-4.0 + 54.4 + -3.0) + (-2.1 + -1.0 + -3.5) = -11.3 + 47.4 + -6.6 = 29.5

La valeur en sortie de la cellule de traitement est 29,5.

En attribuant des pondérations négatives à ses voisins, le filtre accentue les détails locaux en extrayant les différences ou les limites entre les objets.

Exemple 2

Dans l’exemple ci-dessous, le raster en entrée présente un contour net le long de la région où les valeurs passent de 5.0 à 9.0. La caractéristique d’amélioration des contours de l’option High (Haut) a détecté le contour.

Filtre avec option Haut

Traitement de cellules de valeur NoData

L’option Ignore NoData in calculations (Ignorer NoData dans les calculs) contrôle la façon dont les cellules NoData sont gérées au sein de la fenêtre voisine. Lorsque cette option est activée, (option DATA en Python), toutes les cellules voisines de type NoData sont ignorées dans le calcul de la valeur des cellules en sortie. Lorsqu’elle est désactivée, (option NODATA), si des cellules voisines sont de type NoData, la cellule en sortie est de type NoData.

Si la cellule de traitement elle-même est de type NoData et que l’option Ignore NoData in calculations (Ignorer NoData dans les calculs) est sélectionnée, la valeur en sortie de la cellule est calculée en fonction des autres cellules du voisinage présentant une valeur valide. Évidemment, si toutes les cellules du voisinage sont de type NoData, la sortie est également de type NoData, quelle que soit la valeur de ce paramètre.

Bibliographie

Gonzalez, R. C. et P. Wintz. 1977. Digital Image Processing. Massachusetts : Addison–Wesley.

Hord, R. M. 1982. Digital Image Processing of Remotely Sensed Data. New York : Academic.

Moik, J. G. 1980. Digital Processing of Remotely Sensed Images. New York : Academic.

Richards, J. A. 1986. Remote Sensing Digital Image Analysis: An Introduction. Berlin : Springer-Verlag.

Rosenfeld, A. 1978. Image Processing and Recognition, Technical Report 664. University of Maryland Computer Vision Laboratory.