Reference
The CImg library offers facilities to retrieve command line arguments in a console-based program, as it is a commonly needed operation. Three macros cimg_usage(), cimg_help() and cimg_option() are defined for this purpose. Using these macros allows to easily retrieve options values from the command line. Invoking the compiled executable with the option -h or –help will automatically display the program usage, followed by the list of requested options.
The macro cimg_usage(usage) may be used to describe the program goal and usage. It is generally inserted one time after the int main(int argc,char **argv) definition.
| usage | : A string describing the program goal and usage. |
cimg_usage() is used must have correctly defined argc and argv variables.The macro cimg_help(str) will display the string str only if the -help or –help option are invoked when running the programm.
The macro cimg_option(name,default,usage) may be used to retrieve an option value from the command line.
| name | : The name of the option to be retrieved from the command line. |
| default | : The default value returned by the macro if no options name has been specified when running the program. |
| usage | : A brief explanation of the option. If usage==0, the option won't appear on the option list when invoking the executable with options -h or –help (hidden option). |
cimg_option() returns an object that has the same type as the default value default. The return value is equal to the one specified on the command line. If no such option have been specified, the return value is equal to the default value default. Warning, this can be confusing in some situations (look at the end of the next section). cimg_option() is used must have correctly defined argc and argv variables.The code below uses the macros cimg_usage() and cimg_option(). It loads an image, smoothes it an quantifies it with a specified number of values.
Invoking the corresponding executable with test -h -hidden -n 20 -i foo.jpg will display :
./test -h -hidden -n 20 -i foo.jpg
test : Retrieve command line arguments (Oct 16 2004, 12:34:26)
-i = foo.jpg : Input image file
-o = 0 : Output image file
-s = 1 : Standard variation of the gaussian smoothing
-n = 20 : Number of quantification levels
You found me !
cimg_option(option,default,usage) is defined by the type of default, undesired casts may appear when writting code such as : sigma will always be equal to an integer (since the default value 0 is an integer). When passing a float value on the command line, a float to integer cast is then done, truncating the given parameter to an integer value (this is surely not a desired behavior). You must specify 0.0 as the default value in this case.You should take a look at the examples examples/gmic.cpp provided in the CImg Library package. This is a command line based image converter which intensively uses the cimg_option() and cimg_usage() macros to retrieve command line parameters.
Copyrights (C) From october 2004, David Tschumperlé - GREYC UMR CNRS 6072, Image team.
Copyrights (C) January->September 2004, David Tschumperlé.
Copyrights (C) 2000->2003, David Tschumperlé - INRIA Sophia-Antipolis. Odyssée group.