LearningBasedWB

Objective-C

@interface LearningBasedWB : WhiteBalancer

Swift

class LearningBasedWB : WhiteBalancer

More sophisticated learning-based automatic white balance algorithm.

As REF: 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 CITE: Cheng2015 .

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 REF: CV_8UC3 and REF: CV_16UC3.

Member of Xphoto

Methods

  • 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.

    Declaration

    Objective-C

    - (float)getSaturationThreshold;

    Swift

    func getSaturationThreshold() -> Float
  • 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).

    Declaration

    Objective-C

    - (int)getHistBinNum;

    Swift

    func getHistBinNum() -> Int32
  • Maximum possible value of the input image (e.g. 255 for 8 bit images, 4095 for 12 bit images)

    Declaration

    Objective-C

    - (int)getRangeMaxVal;

    Swift

    func getRangeMaxVal() -> Int32
  • Implements the feature extraction part of the algorithm.

     In accordance with CITE: Cheng2015 , 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.
    

    Declaration

    Objective-C

    - (void)extractSimpleFeatures:(nonnull Mat *)src dst:(nonnull Mat *)dst;

    Swift

    func extractSimpleFeatures(src: Mat, dst: Mat)

    Parameters

    src

    Input three-channel image (BGR color space is assumed).

    dst

    An array of four (r,g) chromaticity tuples corresponding to the features listed above.

  • getHistBinNum - see: -getHistBinNum:

    Declaration

    Objective-C

    - (void)setHistBinNum:(int)val;

    Swift

    func setHistBinNum(val: Int32)
  • getRangeMaxVal - see: -getRangeMaxVal:

    Declaration

    Objective-C

    - (void)setRangeMaxVal:(int)val;

    Swift

    func setRangeMaxVal(val: Int32)
  • getSaturationThreshold - see: -getSaturationThreshold:

    Declaration

    Objective-C

    - (void)setSaturationThreshold:(float)val;

    Swift

    func setSaturationThreshold(val: Float)