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

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

3天内不再提示

基于FPGA的直方图线性拉伸的解决方案与对比分析

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-07-02 10:38 次阅读

直方图线性拉伸相对于直方图均衡化来说就更好理解一些了,即用线性变化将灰度直方图较窄的部分拉伸至整个区间,增强整幅图像的对比度。

线性拉伸的效果如下图所示,可以看出图像对比度有所改善,保留了直方图基本的轮廓,同时将直方图范围拉伸至0~255。

图 1 直方图拉伸效果图

算法也比较容易理解,f(x,y)为输入图像,得到输出图像g(x,y)

其中A和B可以分别定义为图像的最小灰度值与最大灰度值,即

但是实际应用中并不会直接采用上述的A和B,这是由于图像中可能存在噪声的原因。想象如果图像中存在几个纯白点(255)和纯黑点(0),那么拉伸后的效果就无法达到预期。

因此我们人为的设定两个阈值Thr_Min和Thr_Max,拉伸系数A,B定义如下:

其中∑H(k)为灰度直方图累计和。下图更直观的表示了A和B的取值,Thr_ Min和Thr_Max是蓝色部分的面积。

图 2 A,B系数的定义

系统框架

图 3 直方图线性拉伸系统框架

上图可以看出,前半部分的直方图统计电路和上篇均衡化完全一样,只是对后半部分的电路做了些修改。计算直方图线性拉伸后的像素值的步骤如下:

1. 统计第一帧图像的灰度直方图

2. 计算直方图累计和

3. 由阈值Thr_Min和Thr_Max算出拉伸系数A,B

4. 第二帧图像灰度值带入公式计算后输出

和直方图均衡化一样,这里我们不考虑帧缓存的问题,也就是前一帧的A,B作为当前帧A,B来使用。

代码分析

A,B系数的计算

hist_cnt为计算出的累计和(与直方图均衡化中的求法一样),当累计和大于阈值的时候,记录下此时累计和对应的地址out_pixel[8:1](即灰度值),作为我们的拉伸系数A,B,同时设置取得系数标志get_max或get_min为1。最后要在第二帧累计和到来时,清零A,B及get标志。

2. B-A的计算

取得系数B后(get_max=1),即可计算出B-A 。

3. f(x,y)-A (第一级流水)

当f(x,y)小于系数A时,直接令f(x,y)-A=0;当f(x,y)大于系数B时,直接令f(x,y)-A=B-A。

4. [f(x,y)-A ]*255 (第二级流水)

5. [f(x,y)-A ]*255/(B-A) (第三级流水)

实验结果

图 4 原图 图 5 阈值为100时处理后的图像

有没有觉得这两幅图并没有什么差别,之前有提到过噪声可能对直方图线性拉伸的影响,下面是将阈值Thr_Min调高至1000后得到的结果。

图 6 阈值为1000时处理后的图像

可以看出直方图线性拉伸需要人为的调整阈值的大小,才能达到理想效果。而直方图均衡化则不需要。

文章出处:【微信公众号:FPGA之家】

责任编辑:gt

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

    关注

    1602

    文章

    21296

    浏览量

    593091
  • 噪声
    +关注

    关注

    13

    文章

    1070

    浏览量

    47060

原文标题:基于FPGA灰度直方图线性拉伸

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

收藏 人收藏

    评论

    相关推荐

    机器人焊接与人工焊接对比分析

    。本文创想焊缝跟踪器小编将对这两种焊接方式进行对比分析。 一、成本 在成本方面,机器人焊接需要较大的初期投入。机器人本身的购置费用以及安装、调试等费用都相当可观。此外,维护和更新机器人所需的费用也不容忽视。相比
    的头像 发表于 04-11 14:30 71次阅读
    机器人焊接与人工焊接<b class='flag-5'>对比分析</b>

    DC电源模块与AC电源模块的对比分析

    DC电源模块与AC电源模块的对比分析 BOSHIDA DC电源模块和AC电源模块是两种常见的电源模块,它们在供电方式、稳定性、适用范围等方面有所不同,下面是它们的对比分析: 1. 供电方式: DC
    的头像 发表于 01-15 14:01 254次阅读
    DC电源模块与AC电源模块的<b class='flag-5'>对比分析</b>

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

    度较低 对比度很高的图像## FPGA功能分析 对于FPGA进行直方图操作的时候有两种方式,一种是真操作,一种是伪操作:真操作就是将图像缓存
    发表于 01-10 15:07

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

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

    FPGA直方图处理方法

    图像直方图用作数字图像中色调分布的图形表示。它绘制了每个色调值的像素数。通过查看特定图像的直方图,观看者将能够一目了然地判断整个色调分布。
    的头像 发表于 12-15 09:20 313次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>直方图</b>处理方法

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

    是间接对比度增强方法。直方图拉伸直方图均衡化是两种最常见的间接对比度增强方法。直方图拉伸是通过对比
    发表于 12-07 14:20

    集成电源解决方案-Altera FPGA应用介绍

    电子发烧友网站提供《集成电源解决方案-Altera FPGA应用介绍.pdf》资料免费下载
    发表于 11-28 09:21 0次下载
    集成电源<b class='flag-5'>解决方案</b>-Altera <b class='flag-5'>FPGA</b>应用介绍

    FPGA的电源管理解决方案

    电子发烧友网站提供《FPGA的电源管理解决方案.pdf》资料免费下载
    发表于 11-24 14:42 0次下载
    <b class='flag-5'>FPGA</b>的电源管理<b class='flag-5'>解决方案</b>

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

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

    RTK与Dialog外围成本及功耗对比分析

    RTK与Dialog外围成本及功耗对比
    发表于 09-22 08:14

    瑞萨H3和高通8155对比分析

    瑞萨H3和高通8155对比分析 近年来,随着智能手机的快速普及,人们对处理器的性能也提出了更高要求。两款处理器——瑞萨H3和高通8155是市场上颇受欢迎的型号。瑞萨H3是日本瑞萨电子公司推出的处理器
    的头像 发表于 08-15 16:23 3017次阅读

    龙文冲压拉伸片料重叠检测解决方案

    企业介绍客户是一家位于深圳龙岗区的精密五金加工企业。多年来,该客户致力于为客户提供高质量的冲压拉伸零部件和解决方案,以满足不同行业的需求。项目需求近期,我们接到了一位客户的需求。该客户在自动化
    的头像 发表于 08-02 13:10 303次阅读
    龙文冲压<b class='flag-5'>拉伸</b>片料重叠检测<b class='flag-5'>解决方案</b>

    NorFlash与NandFlash对比分析哪个好?

    1、接口对比 NorFlash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。 NandFlash器件使用复杂的I/O口来串行地存取数据,8个引脚用来传送控制
    发表于 06-26 08:13

    基于FPGA的PCI Express桥接解决方案

    FPGA 为系统设计提供了极其灵活的可编程平台。包含 IP 内核、硬件平台、演示设计、驱动程序和软件的综合解决方案包使设计人员能够缩短开发周期,同时降低设计的复杂性。
    发表于 05-08 11:35 266次阅读
    基于<b class='flag-5'>FPGA</b>的PCI Express桥接<b class='flag-5'>解决方案</b>

    基于FPGA直方图拉伸方案

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