严格一点来说,
直方图均衡化和直方图规定化是不同的概念。histeq是用来做直方图均衡的。
hgram是均衡化后的灰度级个数。
比如histeq(I, 16),就是希望均衡化后的直方图只有16个灰度级;
histeq(I, 64),就是希望均衡化后的直方图只有64个灰度级。
假设原始图像为256级,共有X个像素,现希望均衡化为N个灰度级,过程如下:
步骤1:计算原始图像I的累积函数A(g),其中g=[0,255]表示256个灰度级。
A(0)就是灰度级为0的元素个数;
A(1)就是灰度级为0和1的元素个数和;
A(2)就是灰度级为0、1和2的元素个数和;
...依次类推...;
A(255)就是X,即原始图像的总的像素个数。
步骤2:计算原始直方图和均衡化后直方图的
映射关系g->G,即将原始图像中的
灰度值g变成新的灰度值G。
这里,G=N*A(g)/X
步骤3:遍历原始图像I,依据步骤2中的映射关系,把所有像素点的灰度值变成新的灰度值,完毕。