FPGA实现图像直方图均衡化

1.1 直方图概述

直方图【定义1】:

一个灰度级为[0, N-1]的数字图像的直方图是一个离散函数

  • 其中 是灰度级为 的像素个数;
  • 是第 k 个灰度级,

由于 的增量是1,则直方图可以表示为:, 即图像中不同灰度级出现的次数。

直方图【定义2】:

一个灰度级为[0, N-1]的数字图像的直方图是一个离散函数

  • 其中n是图像的像素总数
  • 是灰度级为的像素个数,是第k个灰度级,

通常情况下灰度直方图都要采用像素总数n对其进行归一化。可以表示灰度级为发生的概率密度函数的估计值,则有

两种图像直方图定义的比较:

直方图【2】:

  • 使函数值正则化到[0,1]区间,成为实数函数
  • 函数值的范围与像素的总数无关
  • 给出灰度级在图像中出现的概率密度统计
image-20220706020215892 image-20220706020324458

1.2 直方图均衡

直方图均衡化是将原图像的直方图通过变换函数修正为均匀的直方图,然后按均衡直方图修正原图像。 图像均衡化处理后,图像的直方图是平直的,即各级灰度级具有相似相同的出现频数。直方图均衡化过后的图像的灰度级具有均匀的概率分布,图像的视觉效果变的更清晰。

假定连续灰度级的情况下,推导直方图均衡化变换公式,令r代表灰度级, 为概率密度函数,r值归一化之后,最大灰度值为1。

1.3 直方图均衡推导

基本假设

假设存在一种变换:,使直方图均衡。为使变换后的灰度仍保持从黑到白的单一变化顺序,且变化范围和原图一致,以避免整体变亮或变暗,则规定:

  • 正变换:在中, 是单调递增函数,且
  • 反变换:也为单调递增函数,

基本原理

灰度变换不影响像素的位置分布,也不会增减像素数目,因此有:

,

也即:

对于离散灰度级,设一幅图像的像素总数为n, 分为L个灰度级。若为第k个灰度级出现的频数,则第k个灰度级出现的概率为 ,变换后的灰度为:

**算例:**假设图像有64*64=4096个像素,共8个灰度级,灰度分布如下所示:r为归一化后的直方图

790 0.19
1023 0.25
850 0.21
656 0.16
329 0.08
245 0.06
122 0.03
81 0,02

1.4 图像均衡化FPGA实现

0%