类 LearningBasedWB


  • public class LearningBasedWB
    extends WhiteBalancer
    更复杂的基于学习的自动白平衡算法。与 REF: GrayworldWB 一样,该算法通过对输入图像通道应用不同的增益来工作,但其计算比简单的灰世界假设要复杂一些。有关该算法的更多详细信息,请参阅 CITE: Cheng2015。为了屏蔽饱和像素,此函数仅使用满足以下条件的像素:\( \frac{\textrm{max}(R,G,B)}{\texttt{range_max_val}} < \texttt{saturation_thresh} \) 当前支持 REF: CV_8UC3 和 REF: CV_16UC3 类型的图像。
    • 构造函数详情

      • LearningBasedWB

        protected LearningBasedWB​(long addr)
    • 方法详情

      • extractSimpleFeatures

        public void extractSimpleFeatures​(Mat src,
                                          Mat dst)
        实现算法的特征提取部分。根据 CITE: Cheng2015,计算输入图像的以下特征:1. 平均 (R,G,B) 元组的色度 2. 最亮 (R,G,B) 元组的色度(同时忽略饱和像素)3. 主导 (R,G,B) 元组的色度(在 RGB 直方图中具有最高值的元组)4. 色度调色板的众数,它是通过获取根据 RGB 直方图排名前 300 的最常见颜色并将其投影到色度平面来构建的。众数是调色板中密度最高的点,它是通过使用 Epanechnikov 核函数的简单固定带宽核密度估计器计算的。
        参数
        src - 输入三通道图像(假设为 BGR 颜色空间)。
        dst - 四个 (r,g) 色度元组数组,对应于上面列出的特征。
      • getRangeMaxVal

        public int getRangeMaxVal()
        输入图像的最大可能值(例如,8 位图像为 255,12 位图像为 4095)参见:setRangeMaxVal
        返回值
        自动生成
      • setRangeMaxVal

        public void setRangeMaxVal​(int val)
        getRangeMaxVal 参见:getRangeMaxVal
        参数
        val - 自动生成
      • getSaturationThreshold

        public float getSaturationThreshold()
        用于确定饱和像素的阈值,即至少一个通道超过 \(\texttt{saturation_threshold}\times\texttt{range_max_val}\) 的像素将被忽略。参见:setSaturationThreshold
        返回值
        自动生成
      • setSaturationThreshold

        public void setSaturationThreshold​(float val)
        getSaturationThreshold 参见:getSaturationThreshold
        参数
        val - 自动生成
      • getHistBinNum

        public int getHistBinNum()
        定义算法内部使用的三维 RGB 直方图的一个维度的大小。对于位深度更高的图像,增加 bin 的数量通常很有意义(例如,对于 12 位图像,使用 256 个 bin)。参见:setHistBinNum
        返回值
        自动生成
      • setHistBinNum

        public void setHistBinNum​(int val)
        getHistBinNum 参见:getHistBinNum
        参数
        val - 自动生成
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize in class WhiteBalancer
        抛出
        java.lang.Throwable