【问题标题】:Histogram equalization not working for color image直方图均衡不适用于彩色图像
【发布时间】:2017-12-03 20:29:25
【问题描述】:

我正在尝试直方图均衡化,但它给了我与输入相同的图像。

似乎直方图均衡化没有影响。谁能告诉我哪里出错了?

private static Mat adjustBrightnessContrast(Mat srcImage){
        Mat filterImage = srcImage.clone();
        Imgproc.cvtColor(srcImage,filterImage,Imgproc.COLOR_BGR2YCrCb);
        java.util.List<Mat> filterImageList = new ArrayList<Mat>(3);
        Core.split(filterImage,filterImageList);
        Mat luminance = filterImageList.get(0);
        Imgproc.equalizeHist(luminance,luminance);
        filterImageList.set(0,luminance);
        Core.merge(filterImageList,srcImage);
        Imgproc.cvtColor(filterImage,srcImage, Imgproc.COLOR_YCrCb2BGR);
        return srcImage;
    }

我所做的是将图像从BGA转换为YCrCb格式,然后在将图像转换为list格式后对第一个通道为0的通道进行直方图均衡。 然后是我在实现 hist 后得到的 Mat 格式。等式。我用它替换了list。最后是 merge 带有 sourceImage 的列表。

但我得到的输出与输入相同。

我正在尝试将这张图片作为:

PS : 我认为我在转换的颜色部分犯了一些错误,因为灰度图像正常工作。

【问题讨论】:

    标签: opencv image-processing


    【解决方案1】:

    您正在将filterImageList 合并到srcImage,但随后使用filterImage。尝试用这段代码替换,合并到filterImage

    Core.merge(filterImageList,filterImage);
    Imgproc.cvtColor(filterImage,srcImage, Imgproc.COLOR_YCrCb2BGR);
    

    【讨论】:

      猜你喜欢
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      相关资源
      最近更新 更多