Commande manageNodata

Gère la couleur des pixels de nodata

Auteur
Institut national de l'information géographique et forestière

Cet outil est destiné à :

  • identifier les pixels de nodata à partir d'une valeur et d'une tolérance
  • modifier les pixels qui contiennent cette valeur
  • écrire le masque de données associé à l'image

L'outil gère les images à canaux entiers non signés sur 8 bits ou flottant sur 32 bits.

Les paramètres sont les suivants :

  • l'image en entrée (obligatoire)
  • l'image en sortie, au format TIFF. Si on ne la précise pas, les éventuelles modifications de l'image écraseront l'image source.
  • le masque de sortie, au format TIFF. (pas écrit si non précisé).

Dans le cas où seul le masque associé nous intéresse, on ne réecrira jamais de nouvelle image, même si un chemin de sortie différent de l'entrée était précisé.

Si l'image traitée ne contient pas de nodata, le masque n'est pas écrit. En effet, on considère une image sans masque associé comme une image pleine.

On peut également définir 3 couleurs :

  • la couleur cible (obligatoire) : les pixels de cette couleur sont ceux potentiellement considérés comme du nodata et modifiés. On peut également préciser une tolérance en complément de la valeur. L'option "touche les bords" précise la façon dont on identifie les pixels de nodata.
  • la nouvelle couleur de nodata : si elle n'est pas précisée, cela veut dire qu'on ne veut pas la modifier
  • la nouvelle couleur de donnée : si elle n'est pas précisée, cela veut dire qu'on ne veut pas la modifier

Cet outil n'est qu'une interface permettant l'utilisation de la classe TiffNodataManager, qui réalise réellement tous les traitements.

Le nombre de canaux du fichier en entrée et les valeurs de nodata renseignée doivent être cohérents.

L'implémentation de cette commande se trouve dans le fichier manageNodata.cpp

Détails du chaînage des différentes classes d'image :

--- config: theme: neutral flowchart: htmlLabels: false --- flowchart TB subgraph tnm["TiffNodataManager"] direction TB img1@{ shape: proc, label: "FileImage"} img1_notes@{ shape: braces, label: "1 seul image en entrée en lecture"} img1 -.- img1_notes proc{{determine les pixels de nodata}} img1 write1@-- est lue en entier --> proc write1@{ animate: true } img8@{ shape: proc, label: "FileImage"} img8_notes@{ shape: braces, label: "image en sortie en écriture"} img8 -.- img8_notes proc write2@-- donnée bufferisée écrite --> img8 write2@{ animate: true } end classDef optionnal stroke-dasharray: 5 5; class img2 optionnal