第六篇 直方图均衡化
直方图是通过图的方式反映图像像素的分布情况。
在做图像处理时,一般也会利用直方图的波峰波谷做图像二值化分割,或者多个不同的波峰波谷来做分割。不过在讲图像分割之前,我们再来讲一下关于直方图的均衡化。
直方图的均衡化主要是用在将相对较暗的图像通过均衡化的方式把它整体拉亮一点。当然,也是为了更好的处理图像,得到更好的图像效果。
先上原图。说明一下,因为原来那张簕杜鹃花的图片的像素分布相当的广泛且均衡,所以我做了均衡化后基本上变化不大
。体现不出它的使用。所以我用了这张Lena。
这张图从灰度分布上看得出,大量数据集中在大约160-176左右。它的直方图分布如下:
(小刻度为16 ,大刻度为32)
经过直方图均衡化后的Lena图成了:
很明显,均衡化后调高了灰白色区域的亮度,同时也调暗了灰黑色区域的亮度。相当于加了它了们的颜色分布:
他们的直方图分布如下:
初一看感觉不对,为什么会有这么多竖条?其实这是对的,这是因为直方图均衡后把一些灰度值过渡到了其它的色里面,或者说它把一些色用其它值替换了。导致它产生了直方图的空隙。事实上我把所有直方图的数据打印出来后,就看得出来了:
826, 1006, 1120, 675, 797, 929, 1047, 1241, 1385, 0, 1497, 1651, 0, 1610, 0, 1768,
1889, 0, 1842, 0, 1868, 0, 1858, 0, 1835, 1792, 0, 1705, 0, 1766, 1545, 0,
1537, 1466, 1274, 0, 1220, 1150, 1045, 1042, 1754, 818, 802, 771, 1442, 711, 1333, 1311,
673, 1389, 710, 704, 1485, 732, 774, 1655, 853, 856, 799, 1578, 855, 868, 915, 864,
937, 893, 994, 2039, 0, 1052, 1085, 1045, 1151, 1191, 1314, 1292, 0, 1402, 1497, 0,
1712, 0, 1764, 0, 1970, 1858, 0, 1891, 0, 1790, 0, 1697, 1648, 0, 1494, 1357,
1329, 0, 1320, 1214, 1322, 1273, 0, 1365, 1354, 1399, 0, 1415, 1376, 0, 1457, 1590,
0, 1599, 1692, 0, 1738, 0, 1829, 0, 1961, 0, 2049, 0, 2281, 0, 2464, 0,
0, 2742, 0, 0, 2834, 0, 0, 2816, 0, 0, 2799, 0, 2832, 0, 0, 2662,
0, 2578, 0, 0, 2717, 0, 0, 2654, 0, 0, 2991, 0, 0, 3091, 0, 0,
3107, 0, 0, 3358, 0, 0, 3532, 0, 0, 0, 3707, 0, 0, 0, 3689, 0,
0, 3729, 0, 0, 0, 3738, 0, 0, 0, 3731, 0, 0, 3562, 0, 0, 3454,
0, 0, 0, 3231, 0, 0, 3045, 0, 2737, 0, 0, 2408, 0, 3292, 0, 2083,
0, 2005, 0, 1880, 0, 1922, 1901, 0, 1829, 0, 1778, 1638, 0, 1678, 0, 1543,
1336, 1179, 1089, 1004, 1005, 983, 928, 993, 1003, 1041, 1121, 1167, 1203, 0, 1252, 1281,
1374, 1324, 0, 1298, 1326, 1190, 1211, 1100, 911, 794, 1414, 579, 1503, 1040, 1063, 1,
看得出,上图中的确有很多0的空值。
相关算法代码:https://download.****.net/download/finger157959/12528142