FPGA为什么要做直方图均衡化

作者:romme
1、图像直方图概念
图像直方图用来反映一副图像的像素分布。其中,横坐标表示图像像素的灰度级,纵坐标表示每个灰度级对应的像素总数或占所有像素个数的百分比。
例如:灰度级为[0~255]的数字图像直方图,定义:
h(rk)= nk
其中,rk是第k个灰度级(k = 0~255),nk是该灰度级的个数。
若以每个灰度级的个数nk去除以图像像素总数n,则得到归一化的直方图,定义:
p(rk)= nk/n
即,p(rk)表示灰度级为rk发生的概率估计值。所以:一个归一化直方图,其所有部分之和应等于1。
2、为什么要做直方图均衡化
在图像处理应用中,若得到这样一副图片,其图像的灰度分布集中在较窄的范围内,那么视觉上就给人感觉,对比度较差,细节不够清晰。为了使图像变得清晰,就需要提升对比度。
如何提升对比度呢?即,对图像进行非线性拉伸,使得图像的灰度分布变宽,灰度值分布变得均匀。这样,在灰度级范围内,像素的个数分布大致相同,就会使得图像的对比度增强,细节更清晰。
那么,又如何使得灰度值分布均匀呢?即,直方图均衡化。
3、直方图均衡化原理
直方图均衡化,即将随机分布的图像直方图修改成均匀分布的直方图。
基本思想:对原始图像的像素灰度做某种映射变换,使变换后图像灰度的概率密度呈均匀分布。这就意味着图像灰度的动态范围得到了增加, 提高了图像的对比度。
作用:图像增强。
那么,我们使用哪种映射变换呢?答案是:累积分布函数。
说明:
①为什么要选用累积分布函数?
②为什么使用累积分布函数处理后,像素值会均匀分布?
直方图均衡化,必须保证:
①像素值经过映射变换后,原本的大小关系不能发生改变。即较亮的区域,依旧较亮;较暗的区域,依旧较暗。只是增大了对比度,绝对不能明暗颠倒,否则就不是原本的图像了。
②像素值经过映射变换后,不能越界。例如:8bit图像,像素值范围0~255;12bit图像,像素值0~4095。
由于累积分布函数是单调递增函数,可以满足条件①;又因为累积分布函数的值域为0~1,可以控制越界,满足条件②。
实则,有严谨的数学推导过程,在此直接给出公式,具体可以参考《数字图像处理---冈萨雷斯》一书。
其中,h(i)表示图像直方图,nk/n表示归一化。
所以,直方图均衡化实现过程:
(1)求图像直方图;(统计直方图每个灰度级出现的次数)
(2)做归一化处理;
(3)计算新的像素值。
4、fpga实现
fpga实现的核心在于算法,弄清楚原理,写代码只是一个机械的过程。假设一副图像:2464x2056, 8bit,即共有5065984个像素点,256个灰度级。参照上述直方图均衡化的步骤,用fpga实现,效果展示如下:


汽车传感器应用及PSI5硅验证设置简介
挂架组装机及挡圈压装机构的结构和工作原理
天能动力注重环保 投资2亿建设电池回收厂
关于广汽传祺GE3纯电动SUV的设计理念解说
一加 12 Pop-up快闪活动来袭,十城联动火爆开启
FPGA为什么要做直方图均衡化
基于RISC-V的电机控制专用MCU及交钥匙解决方案
特斯拉推出选装升级包 仅适用于双电机的Model 3版本
星闪技术与蓝牙技术区别是什么
魅蓝note3评测 便宜也有好货
芯片业的世纪并购,AMD或将收购芯片制造商赛灵思
非升不可!iOS10.3即将发布,全新的体验
交流点焊机 气动式点凸焊机 汽车零部件点焊机
高压开关柜温升原因及监测方法
智能燃气表市场正快速发展
联发科:预计将会在2021年Q1,5G手机芯片会首次超过4G芯片
人工智能或将为永驻青春带来新的希望 借AI研发抗衰老药物
物联网如何让重型设备更安全、更高效
显卡上的Type-C接口用法介绍
PS-9308ST五工位插拔力试验机的产品机台功能