![]() |
IPSDK
4_1_0_2
IPSDK : Image Processing Software Development Kit
|
module demonstrating the computation of the norm of a gaussian gradient on a 2d image More...
module demonstrating the computation of the norm of a gaussian gradient on a 2d image
This application computes the norm of a gaussian gradient on a 2d input image loaded from a given input TIFF file, and saves the result in a given TIFF file.
The application can be called through a command line as follows:
<application_exe_filename> [--inputImgFilePath <input_image_file_path>] [--outputImgFilePath <output_image_file_path>] [--stdDev <std_dev_value>]
Arguments:
--inputImgFilePath optional; specifies the name of the TIFF file, from
which the 2d input image will be loaded; if not
specified by the user, the input image is loaded from
file
<DEV_ROOT>/data/Sample/images/Lena_510x509_UInt8.tif
--outputImgFilePath optional; specifies the name of the TIFF file, in
which the 2d output image resulting from the
computation of the norm of the gradient will be saved;
if not specified by the user, the output image is
saved in file
<TEMPORARY_IPSDK_DIR>/Sample/gradientNorm.tif
--stdDev optional; specifies the value of standard deviation,
used to compute the gaussian gradient kernel; if not
specified by the user, equals to 3.0 by default
Here is a snapshot of default input image used by the application and of corresponding output image when application is launched without any argument:
The sequence of operations executed in this application is very similar to what is done in Lightness sample application:
Start by including all the necessary header files:
In the main function body, we start by asking to display all the log messages generated by IPSDK libraries and by our application itself to the application console:
Next, we initialize the IPSDK environment:
Then we declare objects 'inImgFilePath' and 'outImgFilePath':
We also declare a variable that will store the standard deviation used to compute the gaussian kernel (used by the gradient operation) and specified by the user (or its default value if the user did not specify its value).
Paths and standard deviation values are updated from the command line, by calling function "readCmdArguments":
And we load our input image from the associated TIFF file:
After that, we first compute the gaussian gradient of the loaded image by calling the function ipsdk::imaproc::filter::gaussianGradient2dImg. The 2 resulting images (gradient respectively along x and y axis) are stored in variable "gradientXYImg". Then we compute the norm of these 2 images by calling the function "l2Norm2Img". The resulting output image is stored in variable pOutImg.
The call of these 2 functions is enclosed in a try/catch block, to handle the case where an exception is thrown. If an error occurs, a message is displayed to the user, IPSDK environment is cleaned by calling "ipsdk::core::LibraryInitializer::getInstance().clear()" and the application terminates.
The output image is then saved to the TIFF file specified in object "outImgFilePath":
Finally, we clean IPSDK environment and exit:
See the full source listing
1.8.14