Référence du fichier merge4tiff.cpp

Fichier d'implémentation de la commande merge4tiff. Plus de détails...

#include <tiffio.h>
#include <boost/algorithm/string.hpp>
#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 <cstdlib>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdint.h>
#include <rok4/image/Image.h>
#include <rok4/enums/Format.h>
#include <rok4/image/file/FileImage.h>
#include <rok4/image/ExtendedCompoundImage.h>
#include <rok4/image/MergeImage.h>
#include <rok4/image/SubsampledImage.h>
#include "config.h"

Fonctions

void usage ()
 Affiche l'utilisation et les différentes options de la commande merge4tiff # 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...
 
int check_components (FileImage *image, int position)
 Contrôle les caractéristiques d'une image (format des canaux, tailles) et de son éventuel masque. Plus de détails...
 
int load_images (FileImage **output_image, FileImage **output_mask, Image **input_image)
 Contrôle l'ensemble des images et masques, en entrée et sortie. Plus de détails...
 
int main (int argc, char *argv[])
 Fonction principale de l'outil merge4tiff. Plus de détails...
 

Variables

char * strnodata = 0
 
std::string background_image_path
 
std::string background_mask_path
 
std::vector< std::string > input_images_paths = {"", "", "", ""}
 
std::vector< std::string > input_masks_paths = {"", "", "", ""}
 
std::string output_image_path
 
std::string output_mask_path
 
double local_gamma = 1.
 
uint32_t width
 
uint32_t height
 
Compression::eCompression compression = Compression::NONE
 
bool output_format_provided = false
 
uint16_t samplesperpixel = 0
 
SampleFormat::eSampleFormat sampleformat = SampleFormat::UNKNOWN
 
Photometric::ePhotometric photometric
 
bool debug_logger =false
 
std::string help
 

Description détaillée

Fichier d'implémentation de la commande merge4tiff.

Le fonctionnement général est décrit dans la page Commande merge4tiff .

Documentation des fonctions

◆ check_components()

int check_components ( FileImage *  image,
int  position 
)

Contrôle les caractéristiques d'une image (format des canaux, tailles) et de son éventuel masque.

Si les composantes sont bonnes, le masque est attaché à l'image.

Paramètres
[in]imageimage à contrôler
[in]positionposition de l'image (0, 1, 2 ou 3)
Renvoie
code de retour, 0 si réussi, -1 sinon

◆ error()

void error ( std::string  message,
int  error_code 
)

Affiche un message d'erreur, l'utilisation de la commande et sort en erreur.

Paramètres
[in]messagemessage d'erreur
[in]error_codecode de retour

◆ load_images()

int load_images ( FileImage **  output_image,
FileImage **  output_mask,
Image **  input_image 
)

Contrôle l'ensemble des images et masques, en entrée et sortie.

Crée les objets TIFF, contrôle la cohérence des caractéristiques des images en entrée, ouvre les flux de lecture et écriture. Les éventuels masques associés sont ajoutés aux objets FileImage.

Paramètres
[in]output_imageimage en sortie
[in]output_maskmasque en sortie
[in]input_imageimage composée en entrée
Renvoie
code de retour, 0 si réussi, -1 sinon

◆ main()

int main ( int  argc,
char *  argv[] 
)

Fonction principale de l'outil merge4tiff.

Différencie le cas de canaux flottants sur 32 bits des canaux entier non signés sur 8 bits.

Paramètres
[in]argcnombre de paramètres
[in]argvtableau des paramètres
Renvoie
0 en cas de succès, -1 sinon

◆ parse_command_line()

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.

Paramètres
[in]argcnombre de paramètres
[in]argvtableau des paramètres
Renvoie
code de retour, 0 si réussi, -1 sinon

◆ usage()

void usage ( )

Affiche l'utilisation et les différentes options de la commande merge4tiff # help.

L'affichage se fait dans le niveau de logger INFO

Documentation des variables

◆ background_image_path

std::string background_image_path

Chemin de l'image de fond

◆ background_mask_path

std::string background_mask_path

Chemin du masque associé à l'image de fond

◆ compression

Compression::eCompression compression = Compression::NONE

Compression de l'image de sortie

◆ debug_logger

bool debug_logger =false

Activation du niveau de log debug. Faux par défaut

◆ height

uint32_t height

Hauteur des images

◆ help

std::string help

Message d'usage de la commande merge4tiff

◆ input_images_paths

std::vector<std::string> input_images_paths = {"", "", "", ""}

Chemins des images en entrée

◆ input_masks_paths

std::vector<std::string> input_masks_paths = {"", "", "", ""}

Chemins des masques associés aux images en entrée

◆ local_gamma

double local_gamma = 1.

Valeur de gamma, pour foncer ou éclaircir des images en entier

◆ output_format_provided

bool output_format_provided = false

A-t-on précisé le format en sortie, c'est à dire les 3 informations samplesperpixel et sampleformat

◆ output_image_path

std::string output_image_path

Chemin de l'image en sortie

◆ output_mask_path

std::string output_mask_path

Chemin du masque associé à l'image en sortie

◆ photometric

Photometric::ePhotometric photometric

Photométrie (rgb, gray), déduit du nombre de canaux

◆ sampleformat

SampleFormat::eSampleFormat sampleformat = SampleFormat::UNKNOWN

Format du canal (entier, flottant, signé ou non...), pour l'image en sortie

◆ samplesperpixel

uint16_t samplesperpixel = 0

Nombre de canaux par pixel, pour l'image en sortie

◆ strnodata

char* strnodata = 0

Valeur de nodata sour forme de chaîne de caractère (passée en paramètre de la commande)

◆ width

uint32_t width

Largeur des images