类 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 在类中 WhiteBalancer
        抛出
        java.lang.Throwable