直方图均值化
实验简述
实验要求:
下载一曝光不足和一曝光过度的彩色图片,对彩色图片进行直方图均衡化,并保存和展示。
原理简述
直方图概念
直方图(Histogram)又称质量分布图、柱状图,是一种统计报告图,也是表示资料变化情况的一种主要工具。直方图由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据类型,纵轴表示分布情况——–百度百科
图像的直方图是以横坐标为像素值(本实验以[0-255]为范围),纵坐标为像素个数(图像以横坐标值为像素值的个数)。
直方图均值化
直方图均值化直观感受
直方图均值化就是把集中在某个值域的像素按某种方法拉伸到整个值域,获得更美观的视觉。
附上图片更容易说明。
这是一张集中于小像素的直方图。
均值化后的直方图。
均值化后,图片就更平和不会出现偏亮或偏暗。
附上图片更容易说明。
均值化前图像
均值化后图像
直方图均值化一种原理说明
通过函数将一个小的范围映射到一个大范围,一种原理就是按如下公式进行映射
h(v)=round((cdf(v)-cdfmin)/(M*N-cdfmin)*(L-1))
cdf(v)为累加函数代表像素值小于等于v的个数。
cdfmin为累加函数。
M*N 分别代表长宽像素,其乘积为整幅图的像素。
round()取整函数。
L为256,L-1像素最大值255。
opencv实现
直方图均值化
1。因为直方图均值化需要单通道图像,所以需用split()函数进行分通道,最后需用 merge(bgr, 3, bgr_res);函数合并通道。
代码