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

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

3天内不再提示

关于指数对比度增强FPGA实现

FPGA技术江湖 来源:疯狂的FPGA 作者:CrazyFPGA 2022-03-16 11:46 次阅读

1.对比度增强原理

对比度增强是个广泛的话题,前文中关于直方图均衡的方法,其实就是一种对比度增强。而对比度增强,就是提高明暗之间的差异,从而达到提高图像对比度、改善主观视觉效果的目的。

采用直方图均衡的方法,其实是对图像灰度的拉伸,但本文将介绍的,是基于曲线灰度映射变换。典型的比如指数变换,对数变换,Gamma变换等等。

为了直观的说明对比度增强的效果,我们先生成一张灰度对称分布图,以指数对比度增强为例,效果如下所示。可见对比度增强后的图,黑色部分更黑了,白色部分更白了,对比更明显了。

然后我们进一步分析增强前后的直方图,可见增强后图像的直方图,暗的像素值更暗的,亮的像素值也更亮了,敏感之间的对比更大,那么对于对比度较低的图像,增强后确实可以提高可视度。

6170b7d4-907d-11ec-952b-dac502259ad0.png

相关代码如下:

61867e66-907d-11ec-952b-dac502259ad0.png

指数对比度增强有很多方法,但万变不离其宗,即以一定阈值为中心,提高阈值以上的亮度,并降低阈值以下的亮度。典型的以对数对比度增强函数为例,公式如下所示:

619956b2-907d-11ec-952b-dac502259ad0.png

针对阈值=127,E取2/4/6的曲线,使用Matlab绘制,如下所示:

61b5b802-907d-11ec-952b-dac502259ad0.png

61c8f142-907d-11ec-952b-dac502259ad0.png

如上图所示,分别是E=2,E=4,E=6的指数对比度增强曲线,横坐标为原始像素,纵坐标为映射后的像素。从曲线可见,E的值越大,对暗区的压缩及亮区的提升程度就越大,那么明暗之间的对比就越明显,即E可以表示为图像对比度增强的程度。图中三条曲线交汇在阈值127处,那么也可以采用不同程度增强曲线的融合模式,比如阈值以下采用E=2,阈值以上采用原值或E=6方式,区别对待图像明暗区域的对比度。

2.指数对比度增强Matlab实现

这里以阈值=127,E=7为例,我们看一下对比度增强后的图像效果。其中matlab代码如下:

61dee18c-907d-11ec-952b-dac502259ad0.png

对比度增强后的图如下所示,可见原图对比度较低,整体给人灰蒙蒙的效果,而右图则看起来更通透,明暗之间的对比度更加鲜明,整体视觉效果也更好了。

61f247ea-907d-11ec-952b-dac502259ad0.png

结合之前讲过的直方图均衡算法,与现在指数对比度增强效果以及各自的直方图进行对比,如下图所示:

6222d6da-907d-11ec-952b-dac502259ad0.png

我们从以下几个方面去对比效果:

1)对比度:

由灰度图可见,明暗对比不明显。通过对比度增强,压缩了暗区并提高了亮区,明暗对比度提高了;通过直方图拉伸后,将图像灰度拉伸到0-255,自然明暗之间的对比度也提高了。不过对比效果,直方图对比度更高,同时也引入了局部过曝的问题。

2)直方图

由直方图可见,原图像素集中在100左右,对比度增强后,压缩/拉伸到25-150,而直方图均衡后拉伸到了0-255,因此从当前测试图来看,直方图拉伸后的动态范围更宽,不过这也因图而异,比如原图就比较亮的图,对比测试效果如下,对比度增强后效果还差强人意,而直方图拉伸后图像过暗,因为本身偏亮,拉伸后则整体亮度降低了。

62660432-907d-11ec-952b-dac502259ad0.png

3.指数对比度增强FPGA实现

直方图拉伸,本质上是对像素概率的统计,然后进行扩展拉伸。

而对比度增强,无论是指数函数,还是各类曲线映射,其本质上就是一种像素映射操作。由于指数函数、对数函数等,实时的计算比较耗时。并且当选定参数后,其结果是固定的,因此可以根据参数提前计算好函数的映射结果,再以数组的方式进行索引,得到计算后的结果。这种方法,在学术领域通俗的讲就是Mapping操作,可在X-Y坐标上找到各自的映射点。

以E=7,THRESHOLD=127为例,指数对比度产生的结果如下所示(reshape是为了方便在Command Windows中显示,实际上是一个一维数组),在matlab中可以直接根据如下结果进行索引映射。

6279afdc-907d-11ec-952b-dac502259ad0.png

在FPGA中进行Mapping操作时,可以将数组存放在RAM或者以RTL源码的方式进行映射。FPGA的RAM采用的是mif或hex的格式进行存储,并且在生成RAM的时候需要进行文件的指定。由于256Byte的存储不大,同时为了提高移植的灵活度,这里我推荐使用RTL源代码的方式,并且使用matlab直接生成verilog文件。以指数对比度增强为例,生成文件的源码如下所示:

628ce70a-907d-11ec-952b-dac502259ad0.png

在当前文件夹下将会生成Curve_Contrast_Array.v文件,即为Matlab生成的曲线对比度映射verilog文件,由于最终实现只是一个简单的地址译码,电路相对比较简单,因此直接采用组合逻辑实现,生成的代码如下所示:

62ae07c8-907d-11ec-952b-dac502259ad0.png

至此,我们已经生成好了Mapping的数组,那么在FPGA中只需要简单的映射就可以完成指定强度的对比度增强算法,即只需要例化该模块,进行原始数据的映射,输出增强后的数据即可,相关代码如下所示:

62e7ee7a-907d-11ec-952b-dac502259ad0.png

4.RTL仿真结果及实测

原文标题:图像指数对比度增强之Matlab&FPGA实现

文章出处:【微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

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

    关注

    1625

    文章

    21663

    浏览量

    601672
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68325
  • 指数函数
    +关注

    关注

    0

    文章

    3

    浏览量

    5798

原文标题:图像指数对比度增强之Matlab&FPGA实现

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    到底什么叫显示器对比度

    到底什么叫显示器对比度  随着LCD一轮又一轮的降价,随着LCD技术的日益成熟,越来越多的消费者开始考虑选购LCD显示器作为电脑的标准配置。可是在眼花缭乱的LCD产品中,您真的可以完全读懂那些指标
    发表于 02-23 16:13

    关于IMAQdx获取的图像调节亮度对比度

    本人新手,对IMAQdx驱动研究得不够,想问问通过这个模块获取的图像怎样修改一下参数,比如调节亮度对比度什么的,烦请高手解答,不胜感激
    发表于 05-08 12:30

    如何按键实现LCD背光灯对比度控制

    如题:如何按键实现LCD背光灯对比度控制~~?求大神指点。
    发表于 12-26 19:26

    一种视频数据流对比度增强组合方法

    针对视频图像的特点,提出了一种直方图灰度变换与平台直方图均衡相结合的图像对比度增强方法。以图像序列的时间平稳特征方差为基础,根据直方图灰度变化范围采用不同
    发表于 12-07 11:13 18次下载

    对比度、亮度控制电路图

    对比度、亮度控制电路图
    发表于 07-15 11:37 751次阅读
    <b class='flag-5'>对比度</b>、亮度控制电路图

    亮度、对比度控制电路图

    亮度、对比度控制电路图
    发表于 07-15 11:41 752次阅读
    亮度、<b class='flag-5'>对比度</b>控制电路图

    液晶显示器的对比度

    液晶显示器的对比度   液晶显示器的对比度实际上就是亮度的比值,定义是:在暗室中,白色画面(最亮时)下的亮度除以黑色
    发表于 12-26 16:43 1068次阅读

    液晶电视的对比度

    液晶电视的对比度              对比度则是屏幕上同一点最亮时(白色)与最暗时(黑色)的亮度的比值,高的对
    发表于 12-31 16:46 1202次阅读

    投影机对比度:究竟差距有多大

    投影机对比度:究竟差距有多大 翻开目前不同品牌的投影机产品资料,对比度指标一定会引起您的注意,因为在这个指标中,不同品牌、同档次的
    发表于 02-06 09:41 4479次阅读

    液晶动态对比度知识充电

    液晶动态对比度知识充电 “动态对比度”无疑是2007年国内液晶显示器行业最火热的词组,在今年下半年最后三家一线显示器厂商-飞利浦(Philips)、优
    发表于 02-11 14:37 655次阅读

    LCD背光及对比度调节

    这个LCD背光及对比度调节应用方案的特点包括: 1、此应用电路以DC/DC电源模块给LCD背光电源及对比度调节供电为例,LCD芯片的工作电压为5V,LCD背光电源及对比度调节采用-24V
    发表于 07-31 15:38 1.1w次阅读
    LCD背光及<b class='flag-5'>对比度</b>调节

    基于对比度阈值的改进SIFT算法

    为了提高基于SIFT(Scale Invariant Feature Transform)图像匹配算法对于图像对比度变化的鲁棒性和算法效率,提出了一种具有可变系数的自适应对比度阈值SIFT算法。根据特征点局部邻域的灰
    发表于 10-26 15:11 0次下载

    调整图片的RGB对比度_Delphi教程

    Delphi教程调整图片的RGB对比度,很好的Delphi的学习资料。
    发表于 03-16 14:55 4次下载

    基于模糊逻辑的指纹图像对比度增强算法

    关键词:对比度 , 模糊逻辑 , 图像 , 增强算法 , 指纹 指纹识别是指指尖表面纹路的脊谷分布模式识别,这种脊谷分布模式是由皮肤表面细胞死亡、角化及其在皮肤表面积累形成的。人的指纹特征是与生俱来
    发表于 11-19 15:30 465次阅读

    DN99-双极性对比度浮动CCFL

    DN99-双极性对比度浮动CCFL
    发表于 04-19 21:19 0次下载
    DN99-双极性<b class='flag-5'>对比度</b>浮动CCFL