Fichier d'implémentation de la commande decimateNtiff. Plus de détails...
#include <proj.h>#include <pthread.h>#include <iostream>#include <sstream>#include <cstdlib>#include <stdio.h>#include <stdlib.h>#include <vector>#include <algorithm>#include <string>#include <fstream>#include <boost/log/core.hpp>#include <boost/log/trivial.hpp>#include <boost/log/utility/setup/common_attributes.hpp>#include <boost/log/utility/setup/console.hpp>#include <rok4/image/file/FileImage.h>#include <rok4/image/DecimatedImage.h>#include <rok4/image/ExtendedCompoundImage.h>#include <rok4/utils/ProjPool.h>#include <rok4/enums/Format.h>#include <math.h>#include "config.h"Fonctions | |
| void | usage () |
| Affiche l'utilisation et les différentes options de la commande decimateNtiff help. Plus de détails... | |
| void | error (std::string message, int error_code) |
| Affiche un message d'erreur, l'utilisation de la commande et sort en erreur. Plus de détails... | |
| int | parse_command_line (int argc, char **argv) |
| Récupère les valeurs passées en paramètres de la commande, et les stocke dans les variables globales. Plus de détails... | |
| bool | load_configuration (std::vector< bool > *masks, std::vector< char * > *paths, std::vector< BoundingBox< double > > *bboxes, std::vector< double > *resxs, std::vector< double > *resys) |
| Lit l'ensemble de la configuration. Plus de détails... | |
| int | load_images (FileImage **output_image, FileImage **output_mask, std::vector< FileImage * > *input_images) |
| Charge les images en entrée et en sortie depuis le fichier de configuration. Plus de détails... | |
| int | add_converters (std::vector< FileImage * > input_images) |
| Ajoute les éventuel convertisseurs aux images en entrée. Plus de détails... | |
| int | sort_images (std::vector< FileImage * > input_images, std::vector< std::vector< Image * > > *sorted_input_images) |
| Trie les images sources. Plus de détails... | |
| int | merge_images (FileImage *output_image, std::vector< std::vector< Image * > > &sorted_input_images, ExtendedCompoundImage **merged_image, int *nodata) |
| Traite chaque paquet d'images en entrée. Plus de détails... | |
| int | main (int argc, char **argv) |
| Fonction principale de l'outil mergeNtiff. Plus de détails... | |
Variables | |
| char | configuration_path [256] |
| char | strnodata [256] |
| bool | output_format_provided = false |
| uint16_t | samplesperpixel = 0 |
| SampleFormat::eSampleFormat | sample_format = SampleFormat::UNKNOWN |
| Photometric::ePhotometric | photometric |
| Compression::eCompression | compression |
| bool | debug_logger =false |
| std::string | help |
Fichier d'implémentation de la commande decimateNtiff.
Le fonctionnement général est décrit dans la page Commande decimateNtiff .
| int add_converters | ( | std::vector< FileImage * > | input_images | ) |
Ajoute les éventuel convertisseurs aux images en entrée.
Si un format de sortie a été spécifié et qu'il n'est pas identique à celui des images en entrée, on ajoute un convertisseur
| [in] | input_images | images en entrée |
| void error | ( | std::string | message, |
| int | error_code | ||
| ) |
Affiche un message d'erreur, l'utilisation de la commande et sort en erreur.
| [in] | message | message d'erreur |
| [in] | error_code | code de retour |
| bool load_configuration | ( | std::vector< bool > * | masks, |
| std::vector< char * > * | paths, | ||
| std::vector< BoundingBox< double > > * | bboxes, | ||
| std::vector< double > * | resxs, | ||
| std::vector< double > * | resys | ||
| ) |
Lit l'ensemble de la configuration.
| [in,out] | masks | Indicateurs de présence d'un masque |
| [in,out] | paths | Chemins des images |
| [in,out] | bboxes | Rectangles englobant des images |
| [in,out] | resxs | Résolution en x des images |
| [in,out] | resys | Résolution en y des images |
| int load_images | ( | FileImage ** | output_image, |
| FileImage ** | output_mask, | ||
| std::vector< FileImage * > * | input_images | ||
| ) |
Charge les images en entrée et en sortie depuis le fichier de configuration.
On va récupérer toutes les informations de toutes les images et masques présents dans le fichier de configuration et créer les objets FileImage correspondant. Toutes les images ici manipulées sont de vraies images (physiques) dans ce sens où elles sont des fichiers soit lus, soit qui seront écrits.
Le chemin vers le fichier de configuration est stocké dans la variables globale configuration_path et images_root va être concaténer au chemin vers les fichiers de sortie.
| [out] | output_image | image résultante de l'outil |
| [out] | output_mask | masque résultat de l'outil, si demandé |
| [out] | input_images | ensemble des images en entrée |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Fonction principale de l'outil mergeNtiff.
| [in] | argc | nombre de paramètres |
| [in] | argv | tableau des paramètres |
| int merge_images | ( | FileImage * | output_image, |
| std::vector< std::vector< Image * > > & | sorted_input_images, | ||
| ExtendedCompoundImage ** | merged_image, | ||
| int * | nodata | ||
| ) |
Traite chaque paquet d'images en entrée.
| [in] | output_image | image de sortie |
| [in] | sorted_input_images | paquets d'images en entrée |
| [out] | merged_image | paquet d'images superposable avec l'image de sortie |
| [in] | nodata | valeur de non-donnée |
| int parse_command_line | ( | int | argc, |
| char ** | argv | ||
| ) |
Récupère les valeurs passées en paramètres de la commande, et les stocke dans les variables globales.
| [in] | argc | nombre de paramètres |
| [in] | argv | tableau des paramètres |
| int sort_images | ( | std::vector< FileImage * > | input_images, |
| std::vector< std::vector< Image * > > * | sorted_input_images | ||
| ) |
Trie les images sources.
La première image en entrée peut être une image de fond : elle est alors compatible avec l'image en sortie Les images suivantes sont les images à "décimer", dont on ne veut garder qu'un pixel sur N. Elles sont compatibles entre elles mais pas avec l'image en sortie (et donc pas avec l'image de fond).
On doit donc avoir à la fin soit un paquet, soit deux avec une seule image dans le premier (le fond)
| [in] | input_images | images en entrée |
| [out] | sorted_input_images | images en entrée, triées en paquets compatibles |
| void usage | ( | ) |
Affiche l'utilisation et les différentes options de la commande decimateNtiff help.
L'affichage se fait dans le niveau de logger INFO
| Compression::eCompression compression |
Compression de l'image de sortie
| char configuration_path[256] |
Chemin du fichier de configuration des images
| bool debug_logger =false |
Activation du niveau de log debug. Faux par défaut
| std::string help |
Message d'usage de la commande decimateNtiff
| bool output_format_provided = false |
A-t-on précisé le format en sortie, c'est à dire les 3 informations samplesperpixel et sample_format
| Photometric::ePhotometric photometric |
Photométrie (rgb, gray), déduit du nombre de canaux
| SampleFormat::eSampleFormat sample_format = SampleFormat::UNKNOWN |
Format du canal (entier, flottant, signé ou non...), pour l'image en sortie
| uint16_t samplesperpixel = 0 |
Nombre de canaux par pixel, pour l'image en sortie
| char strnodata[256] |
Valeur de nodata sour forme de chaîne de caractère (passée en paramètre de la commande)