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

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

3天内不再提示

剖析FPGA灰度直方图线性拉伸

FPGA之家 来源:记忆面包呀 作者:记忆面包呀 2021-07-02 10:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

工程师社群

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

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

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

be11c76a-dadb-11eb-9e57-12bb97331649.png

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

be1d80f0-dadb-11eb-9e57-12bb97331649.png

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

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

be2b8880-dadb-11eb-9e57-12bb97331649.jpg

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

be46fdae-dadb-11eb-9e57-12bb97331649.png

图 2 A,B系数的定义

系统框架

be7b6ecc-dadb-11eb-9e57-12bb97331649.jpg

图 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标志。

beb9b696-dadb-11eb-9e57-12bb97331649.jpg

2. B-A的计算

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

becfaae6-dadb-11eb-9e57-12bb97331649.png

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

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

bef2b4c8-dadb-11eb-9e57-12bb97331649.png

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

bf151e50-dadb-11eb-9e57-12bb97331649.png

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

bf25299e-dadb-11eb-9e57-12bb97331649.png

实验结果

有没有觉得这两幅图并没有什么差别,小编也纳闷了很久。之前有提到过噪声可能对直方图线性拉伸的影响。

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

编辑:jq

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

    关注

    173

    文章

    6063

    浏览量

    177469
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73136
  • 直方图
    +关注

    关注

    0

    文章

    21

    浏览量

    8117
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    神经网络加速器的双线性插值上采样

    如下: (1)最邻近元法计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状。 (2)双线性内插法性质,使高频分量受损,图像的计算比最邻近点法复杂,计算量较大,但
    发表于 10-29 06:36

    使用Otsu阈值算法将灰度图像二值化

    Otsu 算法是由日本学者OTSU于1979年提出的一种对图像进行二值化的高效算法,又称“最大类间方差法”。当我们对一个图象进行二值化操作的时候,需要根据一项灰度阈值来判决每个像素点应该被视作纯黑
    发表于 10-28 06:49

    线性到非线性:工程师必须掌握的Abaqus三大非线性来源

    硕迪科技为您深入剖析Abaqus三大非线性来源:材料非线性、几何非线性、边界条件非线性。掌握工程师必备的非
    的头像 发表于 08-07 18:08 924次阅读
    从<b class='flag-5'>线性</b>到非<b class='flag-5'>线性</b>:工程师必须掌握的Abaqus三大非<b class='flag-5'>线性</b>来源

    功率放大器在光纤拉伸中的应用研究

    光纤拉伸技术在现代光纤制造和应用中具有重要意义,能够精确控制光纤的几何参数和光学性能,满足不同应用场景对光纤的特殊要求。功率放大器作为关键设备之一,为光纤拉伸提供了精确的力控制和能量支持,确保了拉伸
    的头像 发表于 07-03 15:03 460次阅读
    功率放大器在光纤<b class='flag-5'>拉伸</b>中的应用研究

    【高云GW5AT-LV60 开发套件试用体验】基于开发板进行深度学习实践,并尽量实现皮肤病理图片的识别

    说了。 首先想先对一张图片进行相关算法的处理,不如比较开源的有对输入的灰度图像执行自适应直方图均衡化 (AHE)。或者 CLAHE(Contrast Limited Adaptive Histogram
    发表于 06-11 22:35

    水凝胶拉伸试验机:材料性能的洞察者

    的力学性能,对其性能优化和应用拓展至关重要,水凝胶拉伸试验机便应运而生。上海和晟HS-3004B-S水凝胶拉伸试验机水凝胶拉伸试验机基于力学拉伸原理运作。通过对水凝
    的头像 发表于 04-28 10:37 446次阅读
    水凝胶<b class='flag-5'>拉伸</b>试验机:材料性能的洞察者

    DLP2010evm-lc internal pattern的显示有问题,它的灰度不是线性的,为什么?

    DLP2010evm-lc internal pattern的显示有问题,它的灰度不是线性的。比如一个854x1的灰度从0到255的线形变化图案,结果采集出来时,中间有个突变。反复确认过照相机
    发表于 02-26 07:02

    使用DPLC410进行灰度图像的显示,显示时有时图像会抖动是怎么回事?

    编程一下APPSFPGA后,又能够正常显示灰度图像。下面两个视频分别是显示时有抖动和正常显示的情况,APPSFPGA下载的同样的固件 灰度显示参考如下的方法: 这个8us的过程中
    发表于 02-26 06:08

    DLP4500在pattern sequence模式下的灰度响应是线性的吗?

    在pattern sequence模式下的灰度响应是线性的吗?如果我只取一个通道的话也是线性的吗?
    发表于 02-21 15:46

    DLP6500FYE投影时灰度不连续是怎么回事?

    1、我使用的是反射式DMD+外部LED光源,投影时同样出现了上面链接中投影灰度不连续的情况,灰度呈阶梯状变化,且在128bit处也是必有跳变,无法实现线性变化。 相机曝光时间约为2ms,投影曝光
    发表于 02-21 10:20

    DLP9500UV是如何控制每个像素实现256个灰度等级的?

    DLPC410中说明可以选择灰度值为1和8bit,其中8bit可以实现0-255的灰度等级 DMD微镜下的CMOS存储单元对应的是1bit,并不是8bit 那么DMD是如何控制每个像素实现256个灰度等级的?
    发表于 02-17 06:41

    FPGA上的图像处理算法集成与优化

    、Tophat形态学滤波、RAW8转RGB888、彩色图像均值滤波、Alpha背景叠加、直方图灰度拉伸算法以及自动白平衡算法。每种算法都提供了实现方法和相关公式,涵盖了图像处理的核心概念和技术。 1、RG/GB单通道提取,采用2
    的头像 发表于 02-14 13:46 1151次阅读
    <b class='flag-5'>FPGA</b>上的图像处理算法集成与优化

    ADC手册给了内置基准电压直方图,可以通过算这个直方图的标准差来当作内置基准的噪声吗?

    手册给了内置基准电压直方图,可以通过算这个直方图的标准差来当作内置基准的噪声吗?
    发表于 01-13 06:15

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

    直方图统计的原理 直方图统计从数学上来说,是对图像中的像素点进行统计。图像直方图统计常用于统计灰度图像,表示图像中各个灰度级出现的次数或者概
    的头像 发表于 12-24 10:24 1198次阅读
    基于<b class='flag-5'>FPGA</b>实现图像<b class='flag-5'>直方图</b>设计

    nginx+lua+redis实现灰度发布

    作者:马仁喜 前言: 授人以鱼不如授人以渔 .先学会用,在学原理,在学创造,可能一辈子用不到这种能力,但是不能不具备这种能力。这篇文章主要是沉淀使用nginx+lua+redis实现灰度,当我们具备
    的头像 发表于 12-17 10:01 739次阅读