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