直方图均衡化的本质是改变图像灰度来是图像灰度阶分布尽量均匀,进而增强图像细节信息。
直方图均衡的目的是均衡利用动态范围内的所有灰度阶,因此对于映射函数y=f(x),要求的灰度是连续的。对映射集合dy元素,源映射集合dx都有确定的元素与其一一对于,因此得到下式:p(x)dx=p(y)dy。对于均衡后的输出图像p(y)=1,通过积分变换可以得到,对该式求积分,可得到映射函数为:.
在opencv中,直方图均衡化函数为
void equalizeHist(Mat src,Mat heqResult);
其中参数src表示源图像,heqResult表示输出矩阵。
彩色图像需要用split和merge函数结合均衡化函数equalizeHist,利用for循环遍历每一个通道均衡化。