
完成直方图均衡化
已知:
- 图像大小:
- 总像素数:
- 灰度级数:3比特,所以 灰度级为:
一、先写出原始归一化直方图
你已经给出了:
| 0 | 790 | 0.19 |
| 1 | 1023 | 0.25 |
| 2 | 850 | 0.21 |
| 3 | 656 | 0.16 |
| 4 | 329 | 0.08 |
| 5 | 245 | 0.06 |
| 6 | 122 | 0.03 |
| 7 | 81 | 0.02 |
二、求累计分布函数 CDF
直方图均衡化的核心就是先求累计概率:
因为这里 L=8,所以:
先算累计概率:
| 累计概率 | ||
|---|---|---|
| 0 | 0.19 | 0.19 |
| 1 | 0.25 | 0.44 |
| 2 | 0.21 | 0.65 |
| 3 | 0.16 | 0.81 |
| 4 | 0.08 | 0.89 |
| 5 | 0.06 | 0.95 |
| 6 | 0.03 | 0.98 |
| 7 | 0.02 | 1.00 |
三、代入均衡化变换公式
计算:
得到:
| CDF | ||
|---|---|---|
| 0 | 0.19 | 1.33 |
| 1 | 0.44 | 3.08 |
| 2 | 0.65 | 4.55 |
| 3 | 0.81 | 5.67 |
| 4 | 0.89 | 6.23 |
| 5 | 0.95 | 6.65 |
| 6 | 0.98 | 6.86 |
| 7 | 1.00 | 7.00 |
四、把新灰度级量化为整数
因为输出仍然是3比特图像,所以新灰度也只能取:
通常教材里会采用四舍五入:
于是得到映射关系:
| 原灰度 | 新灰度 | |
|---|---|---|
| 0 | 1.33 | 1 |
| 1 | 3.08 | 3 |
| 2 | 4.55 | 5 |
| 3 | 5.67 | 6 |
| 4 | 6.23 | 6 |
| 5 | 6.65 | 7 |
| 6 | 6.86 | 7 |
| 7 | 7.00 | 7 |
所以均衡化映射函数为:
五、得到均衡化后的直方图
现在把原来每个灰度级的像素数,按照新映射加到对应的新灰度级上。
映射汇总
- 原来灰度 0 的 790 个像素 → 新灰度 1
- 原来灰度 1 的 1023 个像素 → 新灰度 3
- 原来灰度 2 的 850 个像素 → 新灰度 5
- 原来灰度 3 的 656 个像素 → 新灰度 6
- 原来灰度 4 的 329 个像素 → 新灰度 6
- 原来灰度 5 的 245 个像素 → 新灰度 7
- 原来灰度 6 的 122 个像素 → 新灰度 7
- 原来灰度 7 的 81 个像素 → 新灰度 7
于是均衡化后的像素数为:
| 新灰度级 | 像素数 |
|---|---|
| 0 | 0 |
| 1 | 790 |
| 2 | 0 |
| 3 | 1023 |
| 4 | 0 |
| 5 | 850 |
| 6 | 656+329=985 |
| 7 | 245+122+81=448 |
六、写出均衡化后的归一化直方图
再除以总像素数 :
| 新灰度级 | 像素数 | 概率 |
|---|---|---|
| 0 | 0 | 0.0000 |
| 1 | 790 | 0.1929 |
| 2 | 0 | 0.0000 |
| 3 | 1023 | 0.2498 |
| 4 | 0 | 0.0000 |
| 5 | 850 | 0.2075 |
| 6 | 985 | 0.2405 |
| 7 | 448 | 0.1094 |
七、最后结果怎么写
如果你要把答案完整写成作业格式,可以直接写成下面这样:
1. 均衡化变换函数
2. CDF计算结果
3. 灰度映射关系
4. 均衡化后直方图
5. 均衡化后归一化直方图
八、为什么均衡化后不一定“完全平坦”?
这是很多人第一次学时会疑惑的点。
原因是:
- 图像灰度级只有 8级
- 像素数是离散的
- 映射后多个原灰度可能会落到同一个新灰度级
所以均衡化后的直方图通常只是比原来更均匀,而不是绝对每级都一样高。
这很正常,不是你算错了。
九、补充:有些教材会用“向下取整”
有的书会写成:
如果用向下取整,结果会稍有不同。
但大多数课堂题、作业题更常见的是四舍五入。你交作业前最好看看老师课件上的定义是哪一种。
十、这道题最简答案版
你考试时如果时间紧,可以直接写:
所以映射关系为:
均衡化后各灰度级像素数为:
微信扫描下方的二维码阅读本文

