The module brings implementations of intensity transformation algorithms to adjust image contrast.#
Detailed Description#
Namespace for all functions is cv::intensity_transform.
Supported Algorithms#
Autoscaling
Log Transformations
Power-Law (Gamma) Transformations
Contrast Stretching
BIMEF, A Bio-Inspired Multi-Exposure Fusion Framework for Low-light Image Enhancement [347] [348]
References from following book and websites:
Digital Image Processing 4th Edition Chapter 3 [Rafael C. Gonzalez, Richard E. Woods] [247]
https://theailearner.com/2019/01/30/contrast-stretching/ theailearner
Function Documentation#
autoscaling()#
void cv::intensity_transform::autoscaling(
const Mat input,
Mat & output )
#include <opencv2/intensity_transform.hpp>
Python:
cv.intensity_transform.autoscaling(input, output)
Given an input bgr or grayscale image, apply autoscaling on domain [0, 255] to increase the contrast of the input image and return the resulting image.
Parameters
input— input bgr or grayscale image.output— resulting image of autoscaling.
BIMEF()#
void cv::intensity_transform::BIMEF(
InputArray input,
OutputArray output,
float k,
float mu,
float a,
float b )
#include <opencv2/intensity_transform.hpp>
Python:
cv.intensity_transform.BIMEF(input[, output[, mu[, a[, b]]]]) -> output
cv.intensity_transform.BIMEF2(input, k, mu, a, b[, output]) -> output
Given an input color image, enhance low-light images using the BIMEF method ([347] [348]).
This is an overloaded function with the exposure ratio given as parameter.
Warning
This is a C++ implementation of the original MATLAB algorithm. Compared to the original code, this implementation is a little bit slower and does not provide the same results. In particular, quality of the image enhancement is degraded for the bright areas in certain conditions.
Parameters
input— input color image.output— resulting image.k— exposure ratio.mu— enhancement ratio.a— a-parameter in the Camera Response Function (CRF).b— b-parameter in the Camera Response Function (CRF).
BIMEF()#
void cv::intensity_transform::BIMEF(
InputArray input,
OutputArray output,
float mu = 0.5f,
float a = -0.3293f,
float b = 1.1258f )
#include <opencv2/intensity_transform.hpp>
Python:
cv.intensity_transform.BIMEF(input[, output[, mu[, a[, b]]]]) -> output
cv.intensity_transform.BIMEF2(input, k, mu, a, b[, output]) -> output
Given an input color image, enhance low-light images using the BIMEF method ([347] [348]).
Warning
This is a C++ implementation of the original MATLAB algorithm. Compared to the original code, this implementation is a little bit slower and does not provide the same results. In particular, quality of the image enhancement is degraded for the bright areas in certain conditions.
Parameters
input— input color image.output— resulting image.mu— enhancement ratio.a— a-parameter in the Camera Response Function (CRF).b— b-parameter in the Camera Response Function (CRF).
contrastStretching()#
void cv::intensity_transform::contrastStretching(
const Mat input,
Mat & output,
const int r1,
const int s1,
const int r2,
const int s2 )
#include <opencv2/intensity_transform.hpp>
Python:
cv.intensity_transform.contrastStretching(input, output, r1, s1, r2, s2)
Given an input bgr or grayscale image, apply linear contrast stretching on domain [0, 255] and return the resulting image.
Parameters
input— input bgr or grayscale image.output— resulting image of contrast stretching.r1— x coordinate of first point (r1, s1) in the transformation function.s1— y coordinate of first point (r1, s1) in the transformation function.r2— x coordinate of second point (r2, s2) in the transformation function.s2— y coordinate of second point (r2, s2) in the transformation function.
gammaCorrection()#
void cv::intensity_transform::gammaCorrection(
const Mat input,
Mat & output,
const float gamma )
#include <opencv2/intensity_transform.hpp>
Python:
cv.intensity_transform.gammaCorrection(input, output, gamma)
Given an input bgr or grayscale image and constant gamma, apply power-law transformation, a.k.a. gamma correction to the image on domain [0, 255] and return the resulting image.
Parameters
input— input bgr or grayscale image.output— resulting image of gamma corrections.gamma— constant in c*r^gamma where r is pixel value.
logTransform()#
void cv::intensity_transform::logTransform(
const Mat input,
Mat & output )
#include <opencv2/intensity_transform.hpp>
Python:
cv.intensity_transform.logTransform(input, output)
Given an input bgr or grayscale image and constant c, apply log transformation to the image on domain [0, 255] and return the resulting image.
Parameters
input— input bgr or grayscale image.output— resulting image of log transformations.