Expand description
Computational Photography
This module includes photo processing algorithms
Inpainting
Denoising
HDR imaging
This section describes high dynamic range imaging algorithms namely tonemapping, exposure alignment, camera calibration with multiple exposures and exposure fusion.
Contrast Preserving Decolorization
Useful links:
http://www.cse.cuhk.edu.hk/leojia/projects/color2gray/index.html
Seamless Cloning
Useful links:
https://www.learnopencv.com/seamless-cloning-using-opencv-python-cpp
Non-Photorealistic Rendering
Useful links:
http://www.inf.ufrgs.br/~eslgastal/DomainTransform
https://www.learnopencv.com/non-photorealistic-rendering-using-opencv-python-c/
C API
Modules
Constants
- Use Navier-Stokes based method
- Use the algorithm proposed by Alexandru Telea Telea04
- The classic method, color-based selection and alpha masking might be time consuming and often leaves an undesirable halo. Seamless cloning, even averaged with the original image, is not effective. Mixed seamless cloning based on a loose selection proves effective.
- Monochrome transfer allows the user to easily replace certain features of one object by alternative features.
- The power of the method is fully expressed when inserting objects with complex outlines into a new background
- Normalized Convolution Filtering
- Recursive Filtering
Traits
- The base class for algorithms that align images of the same scene with different exposures
- Constant methods for crate::photo::AlignExposures
- This algorithm converts images to median threshold bitmaps (1 for pixels brighter than median luminance and 0 otherwise) and than aligns the resulting bitmaps using bit operations.
- Constant methods for crate::photo::AlignMTB
- The base class for camera response calibration algorithms.
- Constant methods for crate::photo::CalibrateCRF
- Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. Objective function is constructed using pixel values on the same position in all images, extra term is added to make the result smoother.
- Constant methods for crate::photo::CalibrateDebevec
- Inverse camera response function is extracted for each brightness value by minimizing an objective function as linear system. This algorithm uses all image pixels.
- Constant methods for crate::photo::CalibrateRobertson
- The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response.
- Constant methods for crate::photo::MergeDebevec
- The base class algorithms that can merge exposure sequence to a single image.
- Constant methods for crate::photo::MergeExposures
- Pixels are weighted using contrast, saturation and well-exposedness measures, than images are combined using laplacian pyramids.
- Constant methods for crate::photo::MergeMertens
- The resulting HDR image is calculated as weighted average of the exposures considering exposure values and camera response.
- Constant methods for crate::photo::MergeRobertson
- Base class for tonemapping algorithms - tools that are used to map HDR image to 8-bit range.
- Constant methods for crate::photo::Tonemap
- Adaptive logarithmic mapping is a fast global tonemapping algorithm that scales the image in logarithmic domain.
- Constant methods for crate::photo::TonemapDrago
- This algorithm transforms image to contrast using gradients on all levels of gaussian pyramid, transforms contrast values to HVS response and scales the response. After this the image is reconstructed from new contrast values.
- Constant methods for crate::photo::TonemapMantiuk
- This is a global tonemapping operator that models human visual system.
- Constant methods for crate::photo::TonemapReinhard
Functions
- Given an original color image, two differently colored versions of this image can be mixed seamlessly.
- Creates AlignMTB object
- Creates CalibrateDebevec object
- Creates CalibrateRobertson object
- Creates MergeDebevec object
- Creates MergeMertens object
- Creates MergeRobertson object
- Creates simple linear mapper with gamma correction
- Creates TonemapDrago object
- Creates TonemapMantiuk object
- Creates TonemapReinhard object
- Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized black-and-white photograph rendering, and in many single channel image processing applications CL12 .
- Primal-dual 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, primal-dual algorithm then can be used to perform denoising and this is exactly what is implemented.
- This filter enhances the details of a particular image.
- Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters are used in many different applications EM11 .
- Perform image denoising using Non-local 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
- C++ default parameters
- Modification of fastNlMeansDenoising function for colored images
- C++ default parameters
- Modification of fastNlMeansDenoising function for colored images
- Modification of fastNlMeansDenoisingMulti function for colored images sequences
- Perform image denoising using Non-local 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
- 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
- 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
- Perform image denoising using Non-local 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
- Applying an appropriate non-linear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.
- Restores the selected region in an image using the region neighborhood.
- Performs pure non local means denoising without any simplification, and thus it is not fast.
- C++ default parameters
- @example samples/cpp/tutorial_code/photo/non_photorealistic_rendering/npr_demo.cpp An example using non-photorealistic line drawing functions
- @example samples/cpp/tutorial_code/photo/seamless_cloning/cloning_demo.cpp An example using seamlessClone function
- Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, high-contrast features.
- 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.