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

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

3天内不再提示

FPGA直方图处理方法

OpenFPGA 来源:OpenFPGA 2023-12-15 09:20 次阅读

直方图概念和分类

图像直方图用作数字图像中色调分布的图形表示。它绘制了每个色调值的像素数。通过查看特定图像的直方图,观看者将能够一目了然地判断整个色调分布。

图表的水平轴代表色调变化,而垂直轴代表该特定色调的像素总数。

水平轴的左侧表示暗区,中间表示中间色调值,右侧表示亮区。纵轴表示在每个区域中捕获的区域大小(像素总数)。

因此,非常暗图像的直方图的大部分数据点将位于图的左侧和中心

相反,具有很少黑暗区域或阴影的非常明亮的图像的直方图的大部分数据点将位于图的右侧和中心。

05c7140c-9ae2-11ee-8b88-92fbcf53809c.png

FPGA处理中常用的是灰度直方图,灰度直方图描述了一幅图像的灰度级统计信息,主要应用于图像分割、图像增强及图像灰度变换等处理过程。

而FPGA对于直方图处理主要分为以下三种:

05ddfc76-9ae2-11ee-8b88-92fbcf53809c.png

我们常见或者听说的直方图概念主要指直方图均衡,这也是最简单的一种方式,常见某些入门级的图像处理书籍或者文章。直方图规定化和直方图拉伸我们后面慢慢介绍,先重点介绍直方图均衡。公众号:OpenFPGA

直方图统计及FPGA实现

从数学上来说,图像直方图描述的是图像各个灰度级的统计特性,它是用图像灰度值的一个函数来统计一幅图像中各个灰度级出现的次数或概率,其数学定义如下所示:公众号:OpenFPGA

直方图统计是比较简单的,将彩色图像转成灰度图像后就可以统计了,伪代码如下:公众号:OpenFPGA

unsignedintpHistCnt[256];
inti,j=0;
memset(pHistCnt,0,256);
for(i=0;i

上面的代码就是遍历图像将数据存储到数据里即可。

2755793-23121509212Mc.jpg

上图中右边是左边图像的直方图统计。

实际用FPGA实现的时候一般会用到归一化的直方图,即不关心实际每个灰度值的具体值而是出现的概率。具体为假定一幅图像的像素个数为N(N=图像长度*图像宽度),灰度级总数为L(级数和图像的位数有关,假定是8位图像,则总数为2^8=256),这时候图像中灰度级l(小L)的像素总数为 。每个灰度级除以总像素数即得到各个灰度级出现的概率:公众号:OpenFPGA

上面的公式有个别称:直方图概率密度函数(也称归一化的灰度直方图),记为PDF

直方图统计完能干嘛呢?很明显的是从直方图中能读取到图像的亮度和对比度信息。若直方图的统计主要偏向右侧分布,那么图像相对较亮;反之亦然。当直方图统计分布比较均匀时,这时候图像的对比度较大,若直方图统计分布比较集中时,则图像对比度较小。公众号:OpenFPGA

下面几张图说明了上面的结论:

060f4b6e-9ae2-11ee-8b88-92fbcf53809c.png

较暗的图像,同时对比度较低 较亮的图像,同时对比度较低 对比度很高的图像

FPGA功能分析

对于FPGA进行直方图操作的时候有两种方式,一种是真操作,一种是伪操作:真操作就是将图像缓存后进行后续处理(均衡等),然后再将图像发送出去;伪操作就是将图像流水过后将需要的信息进行缓存,然后在下一幅图像来之后,将前一副图像得到的信息作用于当前图像。由于常用的操作是基于视频帧,避免视频延迟过大,所以我们一般常用伪操作,即缓存当前帧信息后作用后一帧图像。

上面的特点我们一般选择片内双口 RAM 作为缓存存储器。对于 8 位的深度图来说,统计结果的数据量并不大,因此选择片内存储。此外,一方面统计模块需要与其他时序进行配合,因此需提供双边读写接口;另一方面,统计过程中需要地址信息,因此选择 RAM 形式的存储器。

基上,直方图统计步骤如下:

将当前统计值读出,加 1 后重新写入 RAM

重复以上步骤,直到当前图像统计完毕

在下一幅图像到来之前将结果读出

读出之后对 RAM 内容进行清零

因此,我们需要三个电路完成直方图统计:统计电路、读出电路和清零电路。

064b8f98-9ae2-11ee-8b88-92fbcf53809c.png

关于这三个电路设计我们下期文章再详细介绍。

FPGA电路设计

FPGA代码设计

思考

若图像直方图是分段式集中应该怎么处理比较合适?

后续文章:

直方图均衡及FPGA实现

直方图规定化及FPGA实现

原文标题:FPGA直方图操作

审核编辑:汤梓红

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

    关注

    1629

    文章

    21734

    浏览量

    603099
  • 图像
    +关注

    关注

    2

    文章

    1084

    浏览量

    40457
  • 直方图
    +关注

    关注

    0

    文章

    21

    浏览量

    7883

原文标题:FPGA直方图操作

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

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

    为什么要进行正弦直方图测试?正弦直方图方法测试模数转换器

    使用正弦直方图测试方法可以确定模拟数字转换器(ADC)的参数,并优于线性斜坡直方图测试方法
    的头像 发表于 10-22 15:58 2194次阅读
    为什么要进行正弦<b class='flag-5'>直方图</b>测试?正弦<b class='flag-5'>直方图</b><b class='flag-5'>方法</b>测试模数转换器

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

    很少黑暗区域或阴影的非常明亮的图像的直方图的大部分数据点将位于图的右侧和中心。 在FPGA处理中常用的是灰度直方图,灰度直方图描述了一幅
    发表于 01-10 15:07

    基于FPGA的HDTV视频图像灰度直方图统计算法设计

    本文介绍了如何在FPGA 中利用Block RAM 的特殊结构实现HDTV 视频增强算法中灰度直方图统计。灰度直方图统计灰度直方图统计是图像处理
    发表于 05-14 12:37

    有谁用FPGA做过数字图像直方图统计

    刚开始用FPGA做数字图像处理,看了一些有关直方图方面的资料但是感觉还是不太清晰,请问有谁做过求带顺便求推荐FPGA做数字图像处理方面入门级
    发表于 08-21 09:48

    有谁用FPGA做过数字图像直方图统计

    刚开始用FPGA做数字图像处理,看了一些有关直方图方面的资料但是感觉还是不太清晰,请问有谁做过求带顺便求推荐FPGA做数字图像处理方面入门级
    发表于 08-23 11:01

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

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

    基于FPGA的图像直方图实时显示

    ``基于FPGA的图像直方图实时显示 AT7_Xilinx开发板(USB3.0+LVDS)资料共享 腾讯链接:https://share.weiyun.com/5GQyKKc 百度网盘链接
    发表于 07-12 17:33

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

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

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

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

    基于直方图变换的LED背光源节电调光方法

    摘要: 背光源的功耗最高可占液晶显示模组总功耗的50%以上,文章提出一种基于直方图变换的背光源节电调光方法,在ARM 平台上通过直方图的裁剪、搬移和拉伸对图像进行处理,其后
    发表于 07-19 15:41 2615次阅读
    基于<b class='flag-5'>直方图</b>变换的LED背光源节电调光<b class='flag-5'>方法</b>

    基于FPGA的视频图像灰度信号直方图均衡算法实现设计

    直方图均衡作为一种基础的图像处理方法在很多领域得到应用,但大多是通过DSP或者CPU编程实现,其优点是灵活性比较高,调试方便,最大的缺点是很难做到实时或者准实时处理,这在某些领域是不
    发表于 07-20 18:06 2687次阅读
    基于<b class='flag-5'>FPGA</b>的视频图像灰度信号<b class='flag-5'>直方图</b>均衡算法实现设计

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

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

    基于FPGA直方图拉伸方案

    在视频处理中,为了能够实时调节图像的对比对,通常需要对直方图进行拉伸处理
    的头像 发表于 05-04 09:38 1242次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>直方图</b>拉伸方案

    基于FPGA实现图像直方图设计

    简单,单采用FPGA来实现直方图的统计就稍显麻烦。若使用Xilinx和Altera的FPGA芯片,可以使用HLS来进行图像的加速处理。但这暂时不是我的重点。 用C语言实现
    的头像 发表于 12-24 10:24 53次阅读
    基于<b class='flag-5'>FPGA</b>实现图像<b class='flag-5'>直方图</b>设计