直方图均衡
直方图均衡算法通过将各颜色通道的像素点数值间距拉大,实现在当前颜色通道内像素点数值的大幅差异,增强视觉效果。除此以外,在图像传感器输入的像素值位宽与实际用于显示的像素值位宽不一致的情况下,直方图均衡算法也常用于像素点位宽的转换。
对于 RGB 图像,可以先将其转化为 YUV 图像,仅对 Y 通道执行直方图均衡算法后,再由 YUV 图像转化为 RGB 图像,实现彩色图像的增强。
一般情况下直方图均衡用于灰度图像。
以像素值位宽 8 为例,说明直方图均衡算法。
定义直方图数组为 hist[256](28=256),每个数组元素的数值表示当前图像帧内灰度值等于其序号的像素点的个数。
设当前像素值为 x,经过直方图均衡计算后输出的像素值为 y,一帧图像内的像素点总数为 N,则有以下公式:
y = ( 2 8 − 1 ) × ∑ k = 0 x h i s t [ k ] N y=(2^8-1)\times \frac{\sum^{x}_{k=0}{hist[k]}}{N} y=(28−1)×N∑k=0xhist[k]
对上述公式的解释:小于等于当前像素值的点的数目在整帧所有像素点中所占比例,即为该像素值的增强输出值与满量程的比值。
设当前图像所有像素点的最小值为 min,则其对应的输出值为 0,因为没有比 min 值更小的像素值输入。
设当前图像所有像素点的最大值为 max,则其对应的输出值为