This software smooth and denoise images while preserving sharp edges. Only the first channel of colored images are processed, but temporal and multislice sequences can be processed, frame-by-frame and plane-by-plane.
The method relies on the Total Variation criterion for image regularization. Only a handful of parameters are required:
- 'Smoothing level' controls the tradeoff between smoothing the image and staying close to the original image pixel values.
- 'Maximum number of iterations' sets the computational load allowed for the algortithm to process the image. The larger, the more optimal the resulting image is according to the TV regularization functional. We have set a tolerance such that the algorithm may stop before reaching this number of iterations if stagnation is detected.
- 'Regularization type' sets the type of regularization. 'Isotropic' is advised as it does not produce vertical and horizontal preference for image features.
For a complete description of the parameters and the algorithm please see the article referenced below.
Upon use of this plugin, please cite the following article in scientific communications:
Beck, A.; Teboulle, M. "Fast Gradient-Based Algorithms for Constrained Total Variation Image Denoising and Deblurring Problems," Image Processing, IEEE Transactions on , vol.18, no.11, pp.2419,2434, Nov. 2009. doi: 10.1109/TIP.2009.2028250
as our implementation of the TV regularization method is a direct adaptation of Beck and Teboulle software for Matlab.
We are providing static functions for calling the plugin from scripts and other plugins. See:
- for processing an ICY sequence of image:
TVDenoising.regularizeTVSequence(Sequence seq, int channel, int numIter, double lambda, TVFISTA.RegularizationType regularization)
- for processing an ICY image:
TVDenoising.regularizeTVImage(IcyBufferedImage image, int channel, int numIter, double lambda, TVFISTA.RegularizationType regularization)
-for processing a double array:
TVFISTA.regularizeTV(double im, int width, int height, int numIter, double lambda, RegularizationType regularization)
Sources of the plugin are provided and code is distributed under GPL v3 licence. To recover the source code, locate the .jar file of the plugin in the plugins directory in ICY root folder and uncompress it.