python opencv 直方图均衡_OpenCV:为何直方图均衡函数对彩色图像不起作用?

直方图均衡是一个非线性过程.。信道分割和信道均衡不是均衡对比度的合适方法。均衡涉及强度图像的值,而不是颜色分量。因此,对于简单的RGB彩色图像,不应该单独在每个通道上应用HE。为了不干扰图像的颜色平衡,第一步是将图像的颜色空间从RGB转换为其中一个,该空间将灰度值与颜色分量分离。其中一些是:

YCbCr是首选的,因为它是为数字化图像。执行强度平面的HE转换,将图像转换回RGB。

在您当前的情况下,您没有观察到任何重大的变化,因为在图像中只有两个突出的颜色。当图像中含有大量的颜色时,分割方法会导致颜色的不平衡。

例如,考虑以下图像:

输入图像python opencv 直方图均衡_OpenCV:为何直方图均衡函数对彩色图像不起作用?_第1张图片

灰度图像均衡python opencv 直方图均衡_OpenCV:为何直方图均衡函数对彩色图像不起作用?_第2张图片

个别信道均衡

python opencv 直方图均衡_OpenCV:为何直方图均衡函数对彩色图像不起作用?_第3张图片

这是OpenCV代码,用于彩色图像的直方图均衡化。YCbCr颜色空间。Mat equalizeIntensity(const Mat& inputImage)

{

if(inputImage.channels() >= 3)

{

Mat ycrcb;

cvtColor(inputImage,ycrcb,CV_BGR2YCrCb);

vector channels;

split(ycrcb,channels);

equalizeHist(channels[0], channels[0]);

Mat result;

merge(channels,ycrcb);

cvtColor(ycrcb,result,CV_YCrCb2BGR);

return result;

}

return Mat();

}

你可能感兴趣的:(python,opencv,直方图均衡)