Package org.opencv.photo
Class Photo
java.lang.Object
org.opencv.photo.Photo
public class Photo extends Object

Field Summary
Fields Modifier and Type Field Description static int
INPAINT_NS
static int
INPAINT_TELEA
static int
LDR_SIZE
static int
MIXED_CLONE
static int
MONOCHROME_TRANSFER
static int
NORMAL_CLONE
static int
NORMCONV_FILTER
static int
RECURS_FILTER

Constructor Summary
Constructors Constructor Description Photo()

Method Summary
Modifier and Type Method Description static void
colorChange(Mat src, Mat mask, Mat dst)
Given an original color image, two differently colored versions of this image can be mixed seamlessly.static void
colorChange(Mat src, Mat mask, Mat dst, float red_mul)
Given an original color image, two differently colored versions of this image can be mixed seamlessly.static void
colorChange(Mat src, Mat mask, Mat dst, float red_mul, float green_mul)
Given an original color image, two differently colored versions of this image can be mixed seamlessly.static void
colorChange(Mat src, Mat mask, Mat dst, float red_mul, float green_mul, float blue_mul)
Given an original color image, two differently colored versions of this image can be mixed seamlessly.static AlignMTB
createAlignMTB()
Creates AlignMTB object usually good enough (31 and 63 pixels shift respectively).static AlignMTB
createAlignMTB(int max_bits)
Creates AlignMTB objectstatic AlignMTB
createAlignMTB(int max_bits, int exclude_range)
Creates AlignMTB objectstatic AlignMTB
createAlignMTB(int max_bits, int exclude_range, boolean cut)
Creates AlignMTB objectstatic CalibrateDebevec
createCalibrateDebevec()
Creates CalibrateDebevec object response.static CalibrateDebevec
createCalibrateDebevec(int samples)
Creates CalibrateDebevec objectstatic CalibrateDebevec
createCalibrateDebevec(int samples, float lambda)
Creates CalibrateDebevec objectstatic CalibrateDebevec
createCalibrateDebevec(int samples, float lambda, boolean random)
Creates CalibrateDebevec objectstatic CalibrateRobertson
createCalibrateRobertson()
Creates CalibrateRobertson objectstatic CalibrateRobertson
createCalibrateRobertson(int max_iter)
Creates CalibrateRobertson objectstatic CalibrateRobertson
createCalibrateRobertson(int max_iter, float threshold)
Creates CalibrateRobertson objectstatic MergeDebevec
createMergeDebevec()
Creates MergeDebevec objectstatic MergeMertens
createMergeMertens()
Creates MergeMertens objectstatic MergeMertens
createMergeMertens(float contrast_weight)
Creates MergeMertens objectstatic MergeMertens
createMergeMertens(float contrast_weight, float saturation_weight)
Creates MergeMertens objectstatic MergeMertens
createMergeMertens(float contrast_weight, float saturation_weight, float exposure_weight)
Creates MergeMertens objectstatic MergeRobertson
createMergeRobertson()
Creates MergeRobertson objectstatic Tonemap
createTonemap()
Creates simple linear mapper with gamma correction equal to 2.2f is suitable for most displays.static Tonemap
createTonemap(float gamma)
Creates simple linear mapper with gamma correctionstatic TonemapDrago
createTonemapDrago()
Creates TonemapDrago object than 1 increase saturation and values less than 1 decrease it.static TonemapDrago
createTonemapDrago(float gamma)
Creates TonemapDrago objectstatic TonemapDrago
createTonemapDrago(float gamma, float saturation)
Creates TonemapDrago objectstatic TonemapDrago
createTonemapDrago(float gamma, float saturation, float bias)
Creates TonemapDrago objectstatic TonemapMantiuk
createTonemapMantiuk()
Creates TonemapMantiuk object dynamic range.static TonemapMantiuk
createTonemapMantiuk(float gamma)
Creates TonemapMantiuk objectstatic TonemapMantiuk
createTonemapMantiuk(float gamma, float scale)
Creates TonemapMantiuk objectstatic TonemapMantiuk
createTonemapMantiuk(float gamma, float scale, float saturation)
Creates TonemapMantiuk objectstatic TonemapReinhard
createTonemapReinhard()
Creates TonemapReinhard object value, if 0 it's global, otherwise it's a weighted mean of this two cases.static TonemapReinhard
createTonemapReinhard(float gamma)
Creates TonemapReinhard objectstatic TonemapReinhard
createTonemapReinhard(float gamma, float intensity)
Creates TonemapReinhard objectstatic TonemapReinhard
createTonemapReinhard(float gamma, float intensity, float light_adapt)
Creates TonemapReinhard objectstatic TonemapReinhard
createTonemapReinhard(float gamma, float intensity, float light_adapt, float color_adapt)
Creates TonemapReinhard objectstatic void
decolor(Mat src, Mat grayscale, Mat color_boost)
Transforms a color image to a grayscale image.static void
denoise_TVL1(List<Mat> observations, Mat result)
Primaldual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional).static void
denoise_TVL1(List<Mat> observations, Mat result, double lambda)
Primaldual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional).static void
denoise_TVL1(List<Mat> observations, Mat result, double lambda, int niters)
Primaldual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional).static void
detailEnhance(Mat src, Mat dst)
This filter enhances the details of a particular image.static void
detailEnhance(Mat src, Mat dst, float sigma_s)
This filter enhances the details of a particular image.static void
detailEnhance(Mat src, Mat dst, float sigma_s, float sigma_r)
This filter enhances the details of a particular image.static void
edgePreservingFilter(Mat src, Mat dst)
Filtering is the fundamental operation in image and video processing.static void
edgePreservingFilter(Mat src, Mat dst, int flags)
Filtering is the fundamental operation in image and video processing.static void
edgePreservingFilter(Mat src, Mat dst, int flags, float sigma_s)
Filtering is the fundamental operation in image and video processing.static void
edgePreservingFilter(Mat src, Mat dst, int flags, float sigma_s, float sigma_r)
Filtering is the fundamental operation in image and video processing.static void
fastNlMeansDenoising(Mat src, Mat dst)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoising(Mat src, Mat dst, float h)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoising(Mat src, Mat dst, float h, int templateWindowSize)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoising(Mat src, Mat dst, float h, int templateWindowSize, int searchWindowSize)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoising(Mat src, Mat dst, MatOfFloat h)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoising(Mat src, Mat dst, MatOfFloat h, int templateWindowSize)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoising(Mat src, Mat dst, MatOfFloat h, int templateWindowSize, int searchWindowSize)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoising(Mat src, Mat dst, MatOfFloat h, int templateWindowSize, int searchWindowSize, int normType)
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations.static void
fastNlMeansDenoisingColored(Mat src, Mat dst)
Modification of fastNlMeansDenoising function for colored imagesstatic void
fastNlMeansDenoisingColored(Mat src, Mat dst, float h)
Modification of fastNlMeansDenoising function for colored imagesstatic void
fastNlMeansDenoisingColored(Mat src, Mat dst, float h, float hColor)
Modification of fastNlMeansDenoising function for colored imagesstatic void
fastNlMeansDenoisingColored(Mat src, Mat dst, float h, float hColor, int templateWindowSize)
Modification of fastNlMeansDenoising function for colored imagesstatic void
fastNlMeansDenoisingColored(Mat src, Mat dst, float h, float hColor, int templateWindowSize, int searchWindowSize)
Modification of fastNlMeansDenoising function for colored imagesstatic void
fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize)
Modification of fastNlMeansDenoisingMulti function for colored images sequencesstatic void
fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h)
Modification of fastNlMeansDenoisingMulti function for colored images sequencesstatic void
fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor)
Modification of fastNlMeansDenoisingMulti function for colored images sequencesstatic void
fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize)
Modification of fastNlMeansDenoisingMulti function for colored images sequencesstatic void
fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize, int searchWindowSize)
Modification of fastNlMeansDenoisingMulti function for colored images sequencesstatic void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, int templateWindowSize)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, int templateWindowSize, int searchWindowSize)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h, int templateWindowSize)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h, int templateWindowSize, int searchWindowSize)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h, int templateWindowSize, int searchWindowSize, int normType)
Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time.static void
illuminationChange(Mat src, Mat mask, Mat dst)
Applying an appropriate nonlinear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.static void
illuminationChange(Mat src, Mat mask, Mat dst, float alpha)
Applying an appropriate nonlinear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.static void
illuminationChange(Mat src, Mat mask, Mat dst, float alpha, float beta)
Applying an appropriate nonlinear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.static void
inpaint(Mat src, Mat inpaintMask, Mat dst, double inpaintRadius, int flags)
Restores the selected region in an image using the region neighborhood.static void
pencilSketch(Mat src, Mat dst1, Mat dst2)
Pencillike nonphotorealistic line drawingstatic void
pencilSketch(Mat src, Mat dst1, Mat dst2, float sigma_s)
Pencillike nonphotorealistic line drawingstatic void
pencilSketch(Mat src, Mat dst1, Mat dst2, float sigma_s, float sigma_r)
Pencillike nonphotorealistic line drawingstatic void
pencilSketch(Mat src, Mat dst1, Mat dst2, float sigma_s, float sigma_r, float shade_factor)
Pencillike nonphotorealistic line drawingstatic void
seamlessClone(Mat src, Mat dst, Mat mask, Point p, Mat blend, int flags)
Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or local changes concerned to a selection.static void
stylization(Mat src, Mat dst)
Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism.static void
stylization(Mat src, Mat dst, float sigma_s)
Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism.static void
stylization(Mat src, Mat dst, float sigma_s, float sigma_r)
Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism.static void
textureFlattening(Mat src, Mat mask, Mat dst)
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect.static void
textureFlattening(Mat src, Mat mask, Mat dst, float low_threshold)
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect.static void
textureFlattening(Mat src, Mat mask, Mat dst, float low_threshold, float high_threshold)
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect.static void
textureFlattening(Mat src, Mat mask, Mat dst, float low_threshold, float high_threshold, int kernel_size)
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect.

Field Details

INPAINT_NS
 See Also:
 Constant Field Values

INPAINT_TELEA
 See Also:
 Constant Field Values

LDR_SIZE
 See Also:
 Constant Field Values

NORMAL_CLONE
 See Also:
 Constant Field Values

MIXED_CLONE
 See Also:
 Constant Field Values

MONOCHROME_TRANSFER
 See Also:
 Constant Field Values

RECURS_FILTER
 See Also:
 Constant Field Values

NORMCONV_FILTER
 See Also:
 Constant Field Values


Constructor Details

Method Details

inpaint
Restores the selected region in an image using the region neighborhood. Parameters:
src
 Input 8bit, 16bit unsigned or 32bit float 1channel or 8bit 3channel image.inpaintMask
 Inpainting mask, 8bit 1channel image. Nonzero pixels indicate the area that needs to be inpainted.dst
 Output image with the same size and type as src .inpaintRadius
 Radius of a circular neighborhood of each point inpainted that is considered by the algorithm.flags
 Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA The function reconstructs the selected image area from the pixel near the area boundary. The function may be used to remove dust and scratches from a scanned photo, or to remove undesirable objects from still images or video. See <http://en.wikipedia.org/wiki/Inpainting> for more details. Note: An example using the inpainting technique can be found at opencv_source_code/samples/cpp/inpaint.cpp
 (Python) An example using the inpainting technique can be found at opencv_source_code/samples/python/inpaint.py

fastNlMeansDenoising
public static void fastNlMeansDenoising(Mat src, Mat dst, float h, int templateWindowSize, int searchWindowSize)Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src .templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoising
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src .templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoising
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src . Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoising
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src . Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixels removes image details, smaller h value preserves details but also preserves some noise This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoising
public static void fastNlMeansDenoising(Mat src, Mat dst, MatOfFloat h, int templateWindowSize, int searchWindowSize, int normType)Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src .templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noisenormType
 Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1 This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoising
public static void fastNlMeansDenoising(Mat src, Mat dst, MatOfFloat h, int templateWindowSize, int searchWindowSize)Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src .templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoising
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src .templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoising
Perform image denoising using Nonlocal Means Denoising algorithm <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/> with several computational optimizations. Noise expected to be a gaussian white noise Parameters:
src
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel image.dst
 Output image with the same size and type as src . Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise This function expected to be applied to grayscale images. For colored images look at fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting image to CIELAB colorspace and then separately denoise L and AB components with different h parameter.

fastNlMeansDenoisingColored
public static void fastNlMeansDenoisingColored(Mat src, Mat dst, float h, float hColor, int templateWindowSize, int searchWindowSize)Modification of fastNlMeansDenoising function for colored images Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src .templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noisehColor
 The same as h but for color components. For most images value equals 10 will be enough to remove colored noise and do not distort colors The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function.

fastNlMeansDenoisingColored
public static void fastNlMeansDenoisingColored(Mat src, Mat dst, float h, float hColor, int templateWindowSize)Modification of fastNlMeansDenoising function for colored images Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src .templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noisehColor
 The same as h but for color components. For most images value equals 10 will be enough to remove colored noise and do not distort colors The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function.

fastNlMeansDenoisingColored
Modification of fastNlMeansDenoising function for colored images Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src . Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noisehColor
 The same as h but for color components. For most images value equals 10 will be enough to remove colored noise and do not distort colors The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function.

fastNlMeansDenoisingColored
Modification of fastNlMeansDenoising function for colored images Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src . Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise will be enough to remove colored noise and do not distort colors The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function.

fastNlMeansDenoisingColored
Modification of fastNlMeansDenoising function for colored images Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src . Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixels removes noise but also removes image details, smaller h value preserves details but also preserves some noise will be enough to remove colored noise and do not distort colors The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function.

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, int templateWindowSize, int searchWindowSize)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images.templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, int templateWindowSize)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images.templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixels perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h, int templateWindowSize, int searchWindowSize, int normType)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images.templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noisenormType
 Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h, int templateWindowSize, int searchWindowSize)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images.templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h, int templateWindowSize)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images.templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise

fastNlMeansDenoisingMulti
public static void fastNlMeansDenoisingMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, MatOfFloat h)Modification of fastNlMeansDenoising function for images sequence where consecutive images have been captured in small period of time. For example video. This version of the function is for grayscale images or for manual manipulation with colorspaces. For more details see <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.131.6394> Parameters:
srcImgs
 Input 8bit or 16bit (only with NORM_L1) 1channel, 2channel, 3channel or 4channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Array of parameters regulating filter strength, either one parameter applied to all channels or one per channel in dst. Big h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise

fastNlMeansDenoisingColoredMulti
public static void fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize, int searchWindowSize)Modification of fastNlMeansDenoisingMulti function for colored images sequences Parameters:
srcImgs
 Input 8bit 3channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images.templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixelssearchWindowSize
 Size in pixels of the window that is used to compute weighted average for given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise.hColor
 The same as h but for color components. The function converts images to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoisingMulti function.

fastNlMeansDenoisingColoredMulti
public static void fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor, int templateWindowSize)Modification of fastNlMeansDenoisingMulti function for colored images sequences Parameters:
srcImgs
 Input 8bit 3channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images.templateWindowSize
 Size in pixels of the template patch that is used to compute weights. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise.hColor
 The same as h but for color components. The function converts images to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoisingMulti function.

fastNlMeansDenoisingColoredMulti
public static void fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h, float hColor)Modification of fastNlMeansDenoisingMulti function for colored images sequences Parameters:
srcImgs
 Input 8bit 3channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise.hColor
 The same as h but for color components. The function converts images to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoisingMulti function.

fastNlMeansDenoisingColoredMulti
public static void fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize, float h)Modification of fastNlMeansDenoisingMulti function for colored images sequences Parameters:
srcImgs
 Input 8bit 3channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixelsh
 Parameter regulating filter strength for luminance component. Bigger h value perfectly removes noise but also removes image details, smaller h value preserves details but also preserves some noise. The function converts images to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoisingMulti function.

fastNlMeansDenoisingColoredMulti
public static void fastNlMeansDenoisingColoredMulti(List<Mat> srcImgs, Mat dst, int imgToDenoiseIndex, int temporalWindowSize)Modification of fastNlMeansDenoisingMulti function for colored images sequences Parameters:
srcImgs
 Input 8bit 3channel images sequence. All images should have the same type and size.imgToDenoiseIndex
 Target image to denoise index in srcImgs sequencetemporalWindowSize
 Number of surrounding images to use for target image denoising. Should be odd. Images from imgToDenoiseIndex  temporalWindowSize / 2 to imgToDenoiseIndex  temporalWindowSize / 2 from srcImgs will be used to denoise srcImgs[imgToDenoiseIndex] image.dst
 Output image with the same size and type as srcImgs images. Should be odd. Recommended value 7 pixels given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize  greater denoising time. Recommended value 21 pixels removes noise but also removes image details, smaller h value preserves details but also preserves some noise. The function converts images to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoisingMulti function.

denoise_TVL1
Primaldual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional). As the image denoising, in particular, may be seen as the variational problem, primaldual algorithm then can be used to perform denoising and this is exactly what is implemented. It should be noted, that this implementation was taken from the July 2013 blog entry CITE: MA13 , which also contained (slightly more general) readytouse source code on Python. Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end of July 2013 and finally it was slightly adapted by later authors. Although the thorough discussion and justification of the algorithm involved may be found in CITE: ChambolleEtAl, it might make sense to skim over it here, following CITE: MA13 . To begin with, we consider the 1byte graylevel images as the functions from the rectangular domain of pixels (it may be seen as set \(\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}\) for some \(m,\;n\in\mathbb{N}\)) into \(\{0,1,\dots,255\}\). We shall denote the noised images as \(f_i\) and with this view, given some image \(x\) of the same size, we may measure how bad it is by the formula \(\left\\left\\nabla x\right\\right\ + \lambda\sum_i\left\\left\xf_i\right\\right\\) \(\\\cdot\\\) here denotes \(L_2\)norm and as you see, the first addend states that we want our image to be smooth (ideally, having zero gradient, thus being constant) and the second states that we want our result to be close to the observations we've got. If we treat \(x\) as a function, this is exactly the functional what we seek to minimize and here the PrimalDual algorithm comes into play. Parameters:
observations
 This array should contain one or more noised versions of the image that is to be restored.result
 Here the denoised image will be stored. There is no need to do preallocation of storage space, as it will be automatically allocated, if necessary.lambda
 Corresponds to \(\lambda\) in the formulas above. As it is enlarged, the smooth (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly speaking, as it becomes smaller, the result will be more blur but more sever outliers will be removed.niters
 Number of iterations that the algorithm will run. Of course, as more iterations as better, but it is hard to quantitatively refine this statement, so just use the default and increase it if the results are poor.

denoise_TVL1
Primaldual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional). As the image denoising, in particular, may be seen as the variational problem, primaldual algorithm then can be used to perform denoising and this is exactly what is implemented. It should be noted, that this implementation was taken from the July 2013 blog entry CITE: MA13 , which also contained (slightly more general) readytouse source code on Python. Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end of July 2013 and finally it was slightly adapted by later authors. Although the thorough discussion and justification of the algorithm involved may be found in CITE: ChambolleEtAl, it might make sense to skim over it here, following CITE: MA13 . To begin with, we consider the 1byte graylevel images as the functions from the rectangular domain of pixels (it may be seen as set \(\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}\) for some \(m,\;n\in\mathbb{N}\)) into \(\{0,1,\dots,255\}\). We shall denote the noised images as \(f_i\) and with this view, given some image \(x\) of the same size, we may measure how bad it is by the formula \(\left\\left\\nabla x\right\\right\ + \lambda\sum_i\left\\left\xf_i\right\\right\\) \(\\\cdot\\\) here denotes \(L_2\)norm and as you see, the first addend states that we want our image to be smooth (ideally, having zero gradient, thus being constant) and the second states that we want our result to be close to the observations we've got. If we treat \(x\) as a function, this is exactly the functional what we seek to minimize and here the PrimalDual algorithm comes into play. Parameters:
observations
 This array should contain one or more noised versions of the image that is to be restored.result
 Here the denoised image will be stored. There is no need to do preallocation of storage space, as it will be automatically allocated, if necessary.lambda
 Corresponds to \(\lambda\) in the formulas above. As it is enlarged, the smooth (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly speaking, as it becomes smaller, the result will be more blur but more sever outliers will be removed. better, but it is hard to quantitatively refine this statement, so just use the default and increase it if the results are poor.

denoise_TVL1
Primaldual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional). As the image denoising, in particular, may be seen as the variational problem, primaldual algorithm then can be used to perform denoising and this is exactly what is implemented. It should be noted, that this implementation was taken from the July 2013 blog entry CITE: MA13 , which also contained (slightly more general) readytouse source code on Python. Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end of July 2013 and finally it was slightly adapted by later authors. Although the thorough discussion and justification of the algorithm involved may be found in CITE: ChambolleEtAl, it might make sense to skim over it here, following CITE: MA13 . To begin with, we consider the 1byte graylevel images as the functions from the rectangular domain of pixels (it may be seen as set \(\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}\) for some \(m,\;n\in\mathbb{N}\)) into \(\{0,1,\dots,255\}\). We shall denote the noised images as \(f_i\) and with this view, given some image \(x\) of the same size, we may measure how bad it is by the formula \(\left\\left\\nabla x\right\\right\ + \lambda\sum_i\left\\left\xf_i\right\\right\\) \(\\\cdot\\\) here denotes \(L_2\)norm and as you see, the first addend states that we want our image to be smooth (ideally, having zero gradient, thus being constant) and the second states that we want our result to be close to the observations we've got. If we treat \(x\) as a function, this is exactly the functional what we seek to minimize and here the PrimalDual algorithm comes into play. Parameters:
observations
 This array should contain one or more noised versions of the image that is to be restored.result
 Here the denoised image will be stored. There is no need to do preallocation of storage space, as it will be automatically allocated, if necessary. (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly speaking, as it becomes smaller, the result will be more blur but more sever outliers will be removed. better, but it is hard to quantitatively refine this statement, so just use the default and increase it if the results are poor.

createTonemap
Creates simple linear mapper with gamma correction Parameters:
gamma
 positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma equal to 2.2f is suitable for most displays. Generally gamma > 1 brightens the image and gamma < 1 darkens it. Returns:
 automatically generated

createTonemap
Creates simple linear mapper with gamma correction equal to 2.2f is suitable for most displays. Generally gamma > 1 brightens the image and gamma < 1 darkens it. Returns:
 automatically generated

createTonemapDrago
Creates TonemapDrago object Parameters:
gamma
 gamma value for gamma correction. See createTonemapsaturation
 positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it.bias
 value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best results, default value is 0.85. Returns:
 automatically generated

createTonemapDrago
Creates TonemapDrago object Parameters:
gamma
 gamma value for gamma correction. See createTonemapsaturation
 positive saturation enhancement value. 1.0 preserves saturation, values greater than 1 increase saturation and values less than 1 decrease it. results, default value is 0.85. Returns:
 automatically generated

createTonemapDrago
Creates TonemapDrago object Parameters:
gamma
 gamma value for gamma correction. See createTonemap than 1 increase saturation and values less than 1 decrease it. results, default value is 0.85. Returns:
 automatically generated

createTonemapDrago
Creates TonemapDrago object than 1 increase saturation and values less than 1 decrease it. results, default value is 0.85. Returns:
 automatically generated

createTonemapReinhard
public static TonemapReinhard createTonemapReinhard(float gamma, float intensity, float light_adapt, float color_adapt)Creates TonemapReinhard object Parameters:
gamma
 gamma value for gamma correction. See createTonemapintensity
 result intensity in [8, 8] range. Greater intensity produces brighter results.light_adapt
 light adaptation in [0, 1] range. If 1 adaptation is based only on pixel value, if 0 it's global, otherwise it's a weighted mean of this two cases.color_adapt
 chromatic adaptation in [0, 1] range. If 1 channels are treated independently, if 0 adaptation level is the same for each channel. Returns:
 automatically generated

createTonemapReinhard
public static TonemapReinhard createTonemapReinhard(float gamma, float intensity, float light_adapt)Creates TonemapReinhard object Parameters:
gamma
 gamma value for gamma correction. See createTonemapintensity
 result intensity in [8, 8] range. Greater intensity produces brighter results.light_adapt
 light adaptation in [0, 1] range. If 1 adaptation is based only on pixel value, if 0 it's global, otherwise it's a weighted mean of this two cases. if 0 adaptation level is the same for each channel. Returns:
 automatically generated

createTonemapReinhard
Creates TonemapReinhard object Parameters:
gamma
 gamma value for gamma correction. See createTonemapintensity
 result intensity in [8, 8] range. Greater intensity produces brighter results. value, if 0 it's global, otherwise it's a weighted mean of this two cases. if 0 adaptation level is the same for each channel. Returns:
 automatically generated

createTonemapReinhard
Creates TonemapReinhard object Parameters:
gamma
 gamma value for gamma correction. See createTonemap value, if 0 it's global, otherwise it's a weighted mean of this two cases. if 0 adaptation level is the same for each channel. Returns:
 automatically generated

createTonemapReinhard
Creates TonemapReinhard object value, if 0 it's global, otherwise it's a weighted mean of this two cases. if 0 adaptation level is the same for each channel. Returns:
 automatically generated

createTonemapMantiuk
Creates TonemapMantiuk object Parameters:
gamma
 gamma value for gamma correction. See createTonemapscale
 contrast scale factor. HVS response is multiplied by this parameter, thus compressing dynamic range. Values from 0.6 to 0.9 produce best results.saturation
 saturation enhancement value. See createTonemapDrago Returns:
 automatically generated

createTonemapMantiuk
Creates TonemapMantiuk object Parameters:
gamma
 gamma value for gamma correction. See createTonemapscale
 contrast scale factor. HVS response is multiplied by this parameter, thus compressing dynamic range. Values from 0.6 to 0.9 produce best results. Returns:
 automatically generated

createTonemapMantiuk
Creates TonemapMantiuk object Parameters:
gamma
 gamma value for gamma correction. See createTonemap dynamic range. Values from 0.6 to 0.9 produce best results. Returns:
 automatically generated

createTonemapMantiuk
Creates TonemapMantiuk object dynamic range. Values from 0.6 to 0.9 produce best results. Returns:
 automatically generated

createAlignMTB
Creates AlignMTB object Parameters:
max_bits
 logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively).exclude_range
 range for exclusion bitmap that is constructed to suppress noise around the median value.cut
 if true cuts images, otherwise fills the new regions with zeros. Returns:
 automatically generated

createAlignMTB
Creates AlignMTB object Parameters:
max_bits
 logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively).exclude_range
 range for exclusion bitmap that is constructed to suppress noise around the median value. Returns:
 automatically generated

createAlignMTB
Creates AlignMTB object Parameters:
max_bits
 logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are usually good enough (31 and 63 pixels shift respectively). median value. Returns:
 automatically generated

createAlignMTB
Creates AlignMTB object usually good enough (31 and 63 pixels shift respectively). median value. Returns:
 automatically generated

createCalibrateDebevec
Creates CalibrateDebevec object Parameters:
samples
 number of pixel locations to uselambda
 smoothness term weight. Greater values produce smoother results, but can alter the response.random
 if true sample pixel locations are chosen at random, otherwise they form a rectangular grid. Returns:
 automatically generated

createCalibrateDebevec
Creates CalibrateDebevec object Parameters:
samples
 number of pixel locations to uselambda
 smoothness term weight. Greater values produce smoother results, but can alter the response. rectangular grid. Returns:
 automatically generated

createCalibrateDebevec
Creates CalibrateDebevec object Parameters:
samples
 number of pixel locations to use response. rectangular grid. Returns:
 automatically generated

createCalibrateDebevec
Creates CalibrateDebevec object response. rectangular grid. Returns:
 automatically generated

createCalibrateRobertson
Creates CalibrateRobertson object Parameters:
max_iter
 maximal number of GaussSeidel solver iterations.threshold
 target difference between results of two successive steps of the minimization. Returns:
 automatically generated

createCalibrateRobertson
Creates CalibrateRobertson object Parameters:
max_iter
 maximal number of GaussSeidel solver iterations. Returns:
 automatically generated

createCalibrateRobertson
Creates CalibrateRobertson object Returns:
 automatically generated

createMergeDebevec
Creates MergeDebevec object Returns:
 automatically generated

createMergeMertens
public static MergeMertens createMergeMertens(float contrast_weight, float saturation_weight, float exposure_weight)Creates MergeMertens object Parameters:
contrast_weight
 contrast measure weight. See MergeMertens.saturation_weight
 saturation measure weightexposure_weight
 wellexposedness measure weight Returns:
 automatically generated

createMergeMertens
Creates MergeMertens object Parameters:
contrast_weight
 contrast measure weight. See MergeMertens.saturation_weight
 saturation measure weight Returns:
 automatically generated

createMergeMertens
Creates MergeMertens object Parameters:
contrast_weight
 contrast measure weight. See MergeMertens. Returns:
 automatically generated

createMergeMertens
Creates MergeMertens object Returns:
 automatically generated

createMergeRobertson
Creates MergeRobertson object Returns:
 automatically generated

decolor
Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized blackandwhite photograph rendering, and in many single channel image processing applications CITE: CL12 . Parameters:
src
 Input 8bit 3channel image.grayscale
 Output 8bit 1channel image.color_boost
 Output 8bit 3channel image. This function is to be applied on color images.

seamlessClone
Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or local changes concerned to a selection. Here we are interested in achieving local changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless manner. The extent of the changes ranges from slight distortions to complete replacement by novel content CITE: PM03 . Parameters:
src
 Input 8bit 3channel image.dst
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.p
 Point in dst image where object is placed.blend
 Output image with the same size and type as dst.flags
 Cloning method that could be cv::NORMAL_CLONE, cv::MIXED_CLONE or cv::MONOCHROME_TRANSFER

colorChange
public static void colorChange(Mat src, Mat mask, Mat dst, float red_mul, float green_mul, float blue_mul)Given an original color image, two differently colored versions of this image can be mixed seamlessly. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src .red_mul
 Rchannel multiply factor.green_mul
 Gchannel multiply factor.blue_mul
 Bchannel multiply factor. Multiplication factor is between .5 to 2.5.

colorChange
Given an original color image, two differently colored versions of this image can be mixed seamlessly. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src .red_mul
 Rchannel multiply factor.green_mul
 Gchannel multiply factor. Multiplication factor is between .5 to 2.5.

colorChange
Given an original color image, two differently colored versions of this image can be mixed seamlessly. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src .red_mul
 Rchannel multiply factor. Multiplication factor is between .5 to 2.5.

colorChange
Given an original color image, two differently colored versions of this image can be mixed seamlessly. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src . Multiplication factor is between .5 to 2.5.

illuminationChange
Applying an appropriate nonlinear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src.alpha
 Value ranges between 02.beta
 Value ranges between 02. This is useful to highlight underexposed foreground objects or to reduce specular reflections.

illuminationChange
Applying an appropriate nonlinear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src.alpha
 Value ranges between 02. This is useful to highlight underexposed foreground objects or to reduce specular reflections.

illuminationChange
Applying an appropriate nonlinear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src. This is useful to highlight underexposed foreground objects or to reduce specular reflections.

textureFlattening
public static void textureFlattening(Mat src, Mat mask, Mat dst, float low_threshold, float high_threshold, int kernel_size)By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src.low_threshold
 %Range from 0 to 100.high_threshold
 Value > 100.kernel_size
 The size of the Sobel kernel to be used. Note: The algorithm assumes that the color of the source image is close to that of the destination. This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.

textureFlattening
public static void textureFlattening(Mat src, Mat mask, Mat dst, float low_threshold, float high_threshold)By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src.low_threshold
 %Range from 0 to 100.high_threshold
 Value > 100. Note: The algorithm assumes that the color of the source image is close to that of the destination. This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.

textureFlattening
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src.low_threshold
 %Range from 0 to 100. Note: The algorithm assumes that the color of the source image is close to that of the destination. This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.

textureFlattening
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used. Parameters:
src
 Input 8bit 3channel image.mask
 Input 8bit 1 or 3channel image.dst
 Output image with the same size and type as src. Note: The algorithm assumes that the color of the source image is close to that of the destination. This assumption means that when the colors don't match, the source image color gets tinted toward the color of the destination image.

edgePreservingFilter
Filtering is the fundamental operation in image and video processing. Edgepreserving smoothing filters are used in many different applications CITE: EM11 . Parameters:
src
 Input 8bit 3channel image.dst
 Output 8bit 3channel image.flags
 Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTERsigma_s
 %Range between 0 to 200.sigma_r
 %Range between 0 to 1.

edgePreservingFilter
Filtering is the fundamental operation in image and video processing. Edgepreserving smoothing filters are used in many different applications CITE: EM11 . Parameters:
src
 Input 8bit 3channel image.dst
 Output 8bit 3channel image.flags
 Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTERsigma_s
 %Range between 0 to 200.

edgePreservingFilter
Filtering is the fundamental operation in image and video processing. Edgepreserving smoothing filters are used in many different applications CITE: EM11 . Parameters:
src
 Input 8bit 3channel image.dst
 Output 8bit 3channel image.flags
 Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTER

edgePreservingFilter
Filtering is the fundamental operation in image and video processing. Edgepreserving smoothing filters are used in many different applications CITE: EM11 . Parameters:
src
 Input 8bit 3channel image.dst
 Output 8bit 3channel image.

detailEnhance
This filter enhances the details of a particular image. Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src.sigma_s
 %Range between 0 to 200.sigma_r
 %Range between 0 to 1.

detailEnhance
This filter enhances the details of a particular image. Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src.sigma_s
 %Range between 0 to 200.

detailEnhance
This filter enhances the details of a particular image. Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src.

pencilSketch
public static void pencilSketch(Mat src, Mat dst1, Mat dst2, float sigma_s, float sigma_r, float shade_factor)Pencillike nonphotorealistic line drawing Parameters:
src
 Input 8bit 3channel image.dst1
 Output 8bit 1channel image.dst2
 Output image with the same size and type as src.sigma_s
 %Range between 0 to 200.sigma_r
 %Range between 0 to 1.shade_factor
 %Range between 0 to 0.1.

pencilSketch
Pencillike nonphotorealistic line drawing Parameters:
src
 Input 8bit 3channel image.dst1
 Output 8bit 1channel image.dst2
 Output image with the same size and type as src.sigma_s
 %Range between 0 to 200.sigma_r
 %Range between 0 to 1.

pencilSketch
Pencillike nonphotorealistic line drawing Parameters:
src
 Input 8bit 3channel image.dst1
 Output 8bit 1channel image.dst2
 Output image with the same size and type as src.sigma_s
 %Range between 0 to 200.

pencilSketch
Pencillike nonphotorealistic line drawing Parameters:
src
 Input 8bit 3channel image.dst1
 Output 8bit 1channel image.dst2
 Output image with the same size and type as src.

stylization
Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edgeaware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, highcontrast features. Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src.sigma_s
 %Range between 0 to 200.sigma_r
 %Range between 0 to 1.

stylization
Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edgeaware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, highcontrast features. Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src.sigma_s
 %Range between 0 to 200.

stylization
Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edgeaware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, highcontrast features. Parameters:
src
 Input 8bit 3channel image.dst
 Output image with the same size and type as src.
