OpenCV  4.4.0
Open Source Computer Vision
Public Member Functions | List of all members
cv::xphoto::LearningBasedWB Class Referenceabstract

More sophisticated learning-based automatic white balance algorithm. More...

#include <opencv2/xphoto/white_balance.hpp>

Inheritance diagram for cv::xphoto::LearningBasedWB:
cv::xphoto::WhiteBalancer cv::Algorithm

Public Member Functions

virtual void extractSimpleFeatures (InputArray src, OutputArray dst)=0
 Implements the feature extraction part of the algorithm. More...
 
virtual int getHistBinNum () const =0
 Defines the size of one dimension of a three-dimensional RGB histogram that is used internally by the algorithm. It often makes sense to increase the number of bins for images with higher bit depth (e.g. 256 bins for a 12 bit image). More...
 
virtual int getRangeMaxVal () const =0
 Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images) More...
 
virtual float getSaturationThreshold () const =0
 Threshold that is used to determine saturated pixels, i.e. pixels where at least one of the channels exceeds \(\texttt{saturation_threshold}\times\texttt{range_max_val}\) are ignored. More...
 
virtual void setHistBinNum (int val)=0
 Defines the size of one dimension of a three-dimensional RGB histogram that is used internally by the algorithm. It often makes sense to increase the number of bins for images with higher bit depth (e.g. 256 bins for a 12 bit image). More...
 
virtual void setRangeMaxVal (int val)=0
 Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images) More...
 
virtual void setSaturationThreshold (float val)=0
 Threshold that is used to determine saturated pixels, i.e. pixels where at least one of the channels exceeds \(\texttt{saturation_threshold}\times\texttt{range_max_val}\) are ignored. More...
 
- Public Member Functions inherited from cv::xphoto::WhiteBalancer
virtual void balanceWhite (InputArray src, OutputArray dst)=0
 Applies white balancing to the input image. More...
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 Clears the algorithm state. More...
 
virtual bool empty () const
 Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read. More...
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 Reads algorithm parameters from a file storage. More...
 
virtual void save (const String &filename) const
 
virtual void write (FileStorage &fs) const
 Stores algorithm parameters in a file storage. More...
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())
 Loads algorithm from the file. More...
 
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String. More...
 
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
 Reads algorithm from the file node. More...
 
- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

Detailed Description

More sophisticated learning-based automatic white balance algorithm.

As GrayworldWB, this algorithm works by applying different gains to the input image channels, but their computation is a bit more involved compared to the simple gray-world assumption. More details about the algorithm can be found in [41] .

To mask out saturated pixels this function uses only pixels that satisfy the following condition:

\[ \frac{\textrm{max}(R,G,B)}{\texttt{range_max_val}} < \texttt{saturation_thresh} \]

Currently supports images of type CV_8UC3 and CV_16UC3.

Member Function Documentation

◆ extractSimpleFeatures()

virtual void cv::xphoto::LearningBasedWB::extractSimpleFeatures ( InputArray  src,
OutputArray  dst 
)
pure virtual
Python:
dst=cv.xphoto_LearningBasedWB.extractSimpleFeatures(src[, dst])

Implements the feature extraction part of the algorithm.

In accordance with [41] , computes the following features for the input image:

  1. Chromaticity of an average (R,G,B) tuple
  2. Chromaticity of the brightest (R,G,B) tuple (while ignoring saturated pixels)
  3. Chromaticity of the dominant (R,G,B) tuple (the one that has the highest value in the RGB histogram)
  4. Mode of the chromaticity palette, that is constructed by taking 300 most common colors according to the RGB histogram and projecting them on the chromaticity plane. Mode is the most high-density point of the palette, which is computed by a straightforward fixed-bandwidth kernel density estimator with a Epanechnikov kernel function.
Parameters
srcInput three-channel image (BGR color space is assumed).
dstAn array of four (r,g) chromaticity tuples corresponding to the features listed above.

◆ getHistBinNum()

virtual int cv::xphoto::LearningBasedWB::getHistBinNum ( ) const
pure virtual
Python:
retval=cv.xphoto_LearningBasedWB.getHistBinNum()

Defines the size of one dimension of a three-dimensional RGB histogram that is used internally by the algorithm. It often makes sense to increase the number of bins for images with higher bit depth (e.g. 256 bins for a 12 bit image).

See also
setHistBinNum

◆ getRangeMaxVal()

virtual int cv::xphoto::LearningBasedWB::getRangeMaxVal ( ) const
pure virtual
Python:
retval=cv.xphoto_LearningBasedWB.getRangeMaxVal()

Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images)

See also
setRangeMaxVal

◆ getSaturationThreshold()

virtual float cv::xphoto::LearningBasedWB::getSaturationThreshold ( ) const
pure virtual
Python:
retval=cv.xphoto_LearningBasedWB.getSaturationThreshold()

Threshold that is used to determine saturated pixels, i.e. pixels where at least one of the channels exceeds \(\texttt{saturation_threshold}\times\texttt{range_max_val}\) are ignored.

See also
setSaturationThreshold

◆ setHistBinNum()

virtual void cv::xphoto::LearningBasedWB::setHistBinNum ( int  val)
pure virtual
Python:
None=cv.xphoto_LearningBasedWB.setHistBinNum(val)

Defines the size of one dimension of a three-dimensional RGB histogram that is used internally by the algorithm. It often makes sense to increase the number of bins for images with higher bit depth (e.g. 256 bins for a 12 bit image).

See also
getHistBinNum

◆ setRangeMaxVal()

virtual void cv::xphoto::LearningBasedWB::setRangeMaxVal ( int  val)
pure virtual
Python:
None=cv.xphoto_LearningBasedWB.setRangeMaxVal(val)

Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images)

See also
getRangeMaxVal

◆ setSaturationThreshold()

virtual void cv::xphoto::LearningBasedWB::setSaturationThreshold ( float  val)
pure virtual
Python:
None=cv.xphoto_LearningBasedWB.setSaturationThreshold(val)

Threshold that is used to determine saturated pixels, i.e. pixels where at least one of the channels exceeds \(\texttt{saturation_threshold}\times\texttt{range_max_val}\) are ignored.

See also
getSaturationThreshold

The documentation for this class was generated from the following file: