我正在尝试直方图均衡化,但它给我的结果与输入图像相同。看起来直方图均衡化没有任何影响。有人能告诉我错在哪里吗?
我所做的是将图像从BGA转换为YCrCb格式,然后在将图像转换为
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
格式后对第一个通道进行直方图均衡化处理。
然后,我用实现了直方图均衡化处理后得到的Mat格式替换了list
。最后,使用merge
将列表与源图像合并。
但是,我得到的输出与输入相同。
我正在尝试对此图像进行操作:
PS:我认为在转换的颜色部分犯了一些错误,因为灰度图像可以正常工作。