0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:FPGA干货架 作者:romme 2020-11-19 17:03 次阅读

作者: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实现,效果展示如下:

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1631

    文章

    21806

    浏览量

    606681
  • 图像处理
    +关注

    关注

    27

    文章

    1306

    浏览量

    56938
收藏 人收藏

    评论

    相关推荐

    基于直方图算法进行FPGA架构设计

    引言 直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图直方图的不同种类和统计方法请见之前的文章。本章就是用
    的头像 发表于 12-10 16:37 2889次阅读

    为什么不能直接对RGB图做直方图均衡

    相信好多人在开始学习FPGA图像处理的时候都是接触的RGB转灰度图,Sobel图像检测,直方图均衡这样的算法。
    的头像 发表于 01-02 09:41 1258次阅读
    为什么不能直接对RGB图做<b class='flag-5'>直方图</b><b class='flag-5'>均衡</b><b class='flag-5'>化</b>

    一文带你了解FPGA直方图操作

    灰度变换等处理过程。 而FPGA对于直方图处理主要分为以下三种: 我们常见或者听说的直方图概念主要指直方图均衡,这也是最简单的一种方式,常
    发表于 01-10 15:07

    DSP国产教学实验箱_嵌入式教程:5-7 直方图均衡

    一、实验目的 学习直方图均衡的原理,掌握图像的读取方法,并实现直方图均衡,增强图片效果。 二
    发表于 07-12 15:47

    急求直方图均衡的Verilog代码或者是FPGA上算法处理的资料,多谢了

    急求直方图均衡的Verilog代码或者是FPGA上算法处理的资料,多谢了
    发表于 06-02 17:51

    使用LabVIEW编程实现直方图均衡

    使用LabVIEW编程实现直方图均衡
    发表于 11-13 20:24

    基于FPGA的图像直方图均衡处理

    `基于FPGA的图像直方图均衡处理 AT7_Xilinx开发板(USB3.0+LVDS)资料共享 腾讯链接:https://share.weiyun.com/5GQyKKc 百度网盘链接:https
    发表于 07-14 17:26

    【干货】基于FPGA的图像处理(图像增强)之直方图均衡

    最近一直在用FPGA调图像处理相关的算法,主要是集中在图像增强和增晰方面。现在来介绍一个复杂度不高,但确实也还比较好用的图像增强算法-直方图均衡直方图
    发表于 12-08 09:40

    TI C6000教学实验箱操作教程:5-8 直方图均衡(LCD显示)

    一、实验目的 学习直方图均衡的原理,掌握图像的读取方法,并实现在LCD上显示直方图均衡前后的
    发表于 12-07 14:20

    保持图像细节的直方图均衡算法

    对常规的直方图均衡算法进行了改进,避免了不同灰度的像素均衡后被合并、图像细节丢失等现象。实验结果表明,改进的直方图均衡新算法既能充分增强图像
    发表于 11-09 16:50 21次下载

    直方图均衡_《OpenCV3编程入门》书本配套源代码

    《OpenCV3编程入门》书本配套源代码:直方图均衡
    发表于 06-06 15:52 6次下载

    直方图均衡_OpenCV3编程入门-源码例程

    OpenCV3编程入门-源码例程全集-直方图均衡,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:15 2次下载

    MATLAB如何实现图像增强灰度变换直方图均衡匹配

    的四种灰度变换;使用 MATLAB 自带的 imadjust 函数;以及直方图均衡和规定(匹配)处理的图像增强方法。
    发表于 01-13 21:56 1.1w次阅读
    MATLAB如何实现图像增强灰度变换<b class='flag-5'>直方图</b><b class='flag-5'>均衡</b>匹配

    基于直方图算法的FPGA设计架构

    直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图直方图的不同种类和统计方法请见之前的文章。本章就是用
    发表于 04-20 10:47 1224次阅读
    基于<b class='flag-5'>直方图</b>算法的<b class='flag-5'>FPGA</b>设计架构

    直方图均衡的原理及OpenCV的算法和代码实现免费下载

    直方图均衡是想把左边的直方图变换为右边的直方图,使各个灰度值上的像素个数均匀分布,这样图像整体的亮度分布较均匀,不会过亮或过暗,同时可以增
    发表于 09-25 11:10 8次下载
    <b class='flag-5'>直方图</b><b class='flag-5'>均衡</b><b class='flag-5'>化</b>的原理及OpenCV的算法和代码实现免费下载