![]() |
IPSDK
4_1_0_2
IPSDK : Image Processing Software Development Kit
|
module demonstrating the usage of a mean smoothing filter on a 3d image More...
module demonstrating the usage of a mean smoothing filter on a 3d image
This application applies a mean smoothing filter on a 3d 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>] [--inHalfKnlSizeX <half_kernel_size_along_x>] [--inHalfKnlSizeY <half_kernel_size_along_y>] [--inHalfKnlSizeZ <half_kernel_size_along_z>]
Arguments:
--inputImgFilePath optional; specifies the name of the TIFF file, from
which the 3d input image will be loaded; if not
specified by the user, the input image is loaded from
file
<DEV_ROOT>/data/Sample/images/Rope3d.tif
--outputImgFilePath optional; specifies the name of the TIFF file, in
which the 3d output image resulting from the
computation of the mean smoothing filter will be saved;
if not specified by the user, the output image is
saved in file
<TEMPORARY_IPSDK_DIR>/Sample/meanSmoothing3d.tif
--inHalfKnlSizeX optional; specifies the value of half kernel size along x axis,
used while applying the mean smoothing filter; if not
specified by the user, equals to 3 by default
--inHalfKnlSizeY optional; specifies the value of half kernel size along y axis,
used while applying the mean smoothing filter; if not
specified by the user, equals to 3 by default
--inHalfKnlSizeZ optional; specifies the value of half kernel size along z axis,
used while applying the mean smoothing filter; if not
specified by the user, equals to 3 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 variables that will store the half kernel size used to apply mean smoothing filter and specified by the user (or its default value if the user did not specify its value).
Paths and half kernel size values are updated from the command line, by calling function "readCmdArguments":
And we load our input image from the associated TIFF file:
We can now apply the "meanSmoothing3d" filter operation on our freshly loaded input image, by calling "ipsdk::imaproc::filter::meanSmoothing3d". This function takes our object pInImg3d, and returns the resulting image in an object of type ImagePtr, that we store in our variable pOutImg.
Once again, the call of "meanSmoothing3d" function is enclosed in a try/catch block to handle any failure during this operation. If the operation fails, we notify the user and clean IPSDK environment before exiting.
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