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

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

3天内不再提示

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

电子设计 作者:电子设计 2018-11-14 07:55 次阅读

摘要:本文首先对图像采集卡系统的组成、整体方案和可行性进行了论证,然后给出了图像采集卡的硬件设计。用VHDL和原理图结合的方法对FPGA进行编程,实现了图像采集系统的各个功能模块。接下来提出一种采用设计的FPGA卡实现带修改参数的灰度变换图像增强算法,给出算法的详细表达式及其实现的定点化子程序,并且给出了图像算法在FPGA中采用VHDL语言的具体实现。最后,对算法的有效性进行了测试,比较了采用该算法及不采用该算法2种情况下的图像增强效果。

0 引言

图像在采集过程中不可避免地会受到传感器灵敏度、噪声干扰以及模数转化时量化问题等因素影响而导致图像无法达到人眼的视觉效果,为了实现人眼观察或者机器自动分析的目的,对原始图像所做的改善行为,就被称作图像增强技术。因此图像增强技术虽然是改善图像质量的通用方法,但是它也同样带有针对性,它必须是针对某一特定的需要而采用的特定的算法来实现图像质量的改善。

图像增强技术根据各种不同目的而产生了多种算法,根据处理空间的不同把这些算法分为基于空间域的图像增强算法和基于变换域的图像增强算法。基于空间域的图像增强算法又可以分为空域的变换增强算法、空域的滤波增强算法以及空域的彩色增强算法;基于变换域的图像增强算法可以分为频率域平滑增强算法、频率域的锐化增强算法以及频域彩色增强算法。

本论文采用的是空间域图像增强算法,主要利用一定的图像灰度值映射准则来调整图像灰度的动态范围,从而实现图像的增强。

1 图像采集卡总体结构

如图1所示,整个采集卡可分成3个子模块,主要有PCI总线部分、FPGA系统部分和外围接口部分。PCI总线部分的主要功能是完成PC机和PCI本地总线上设备的通信,包括PCI总线的通信,本地总线上的总线仲裁、数据传输、中断、中断握手以及PCI9054 芯片的配置功能。

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

FPGA 系统部分主要实现的是一个FPGA 最小系统。作为PCI9054 本地总线上的设备,FPGA 需要完成和PCI9054本地总线接口之间的通信。同样FPGA也需要具有上电自动配置的功能。外围接口部分主要与FPGA 通信。虽然通过FPGA 产生了各种控制信号,但这些信号在被转换之后才能用于实际的控制。外围接口部分的主要任务就是进行电平转换,以达到实际应用的要求。

2 图像增强算法实现

2.1 图像增强算法设计

在此,采用基于点操作的增强方法,也称为灰度变换。采用直接灰度变换方法实现增强原图各部分的反差。实际中往往采用增加原图里某两个灰度值间的动态范围来实现。在本设计中,采用图2所示的直接灰度变换的方法,横坐标表示原图像的灰度值,纵坐标表示变换后的灰度值,实线为本论文中讨论的增强对比度变换曲线。虚线表示不做任何变换的曲线图。

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

可以看出把原图中的0~ r1 和r2 ~ 2n - 1 间的动态范围明显减小,而原图中灰度值r1 ~ r2 之间的动态范围增加了。其中n 为图像位宽。这样,分段线性变换的数学表达式如下:

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

简化表达式,化简如下:

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

式中参数k1 ,k2 ,k3 可能是一个小数,为了在FPGA 里面能够进行计算,首先需要对这3个参数进行定点化处理。整个定点化的工作被嵌入到驱动程序中,用户只需输入接口数据r1 ,r2 ,s1 和s2 ,驱动程序生成定点化结果k1 ,k2 ,k3 和移位的位数bit1 ,bit2 ,bit3 送入FP-GA.本论文采用定点化方法是,先将小数进行乘2操作(移位操作),如果先到达整数或者大于512提前完成乘2操作,否则对其32次的乘2操作。

2.2 图像增强算法的FPGA实现

利用现场可编程门阵列(FPGA)的并行、实时处理的特性,实现图像增强的片上集成系统(SoC)。系统将图2 中的r1 ,r2 ,s1 和s2 设计成接口参数,用户通过主控计算机的应用程序可以反复配置参数,直到得到预期的结果为止。

2.2.1 FPGA算法的VHDL实现

为了方便阐述,把整个FPGA 实现图像增强算法,分为几个阶段。首先,PC 机通过应用程序送r1 ,r2 ,s1和s2 .而后,由驱动程序中的定点化程序将系数进行定点化,后通过PCI9054把式(2)中k1 ,k2 ,k3 ,r1 ,r2 ,s1 ,s2 和移位参数bit1 ,bit2 ,bit3 送到FPGA的内部寄存器中。这样,FPGA中嵌入的图像增强算法模块就能从SDRAM 中取出原始图像数据进行增强,并把经处理后的图像数据存回SDRAM中。图像增强模块首先取回数据,对取回的数据进行判断,把图像数据分为3个区间。并做相应的减法。结果跟定点后的系数进行定点乘法,之后将结果数据进行移位操作,然后通过累加输出结果。常用的并行处理有两种最基本的连接模式:流水线连接和并行阵列连接。针对该算法,采用流水线连接方式进行。在流水线结构中,一个大任务被分解成复杂性大致相同的小任务,各小任务在流水线上同时执行,整个任务的速度取决于执行时间最长的子任务的执行时间。在本论文设计中把增强算法模块化分成判断模块,减法模块,乘法模块,移位模块和累加模块,并将其进行流水连接。算法逻辑框图如图3所示。

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

Cyclone器件中的M4K 块支持软乘法器,在设计中采用ALTERA的IP实现。乘法器的IP核如图4所示。

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

2.2.2 FPGA算法调试结果分析

通过SignalTap抓取图像值为0×08的图像增强算法的调试结果见图5.系数k1 为1,bit1 为4时,图像经算法后的像素值image_data_out为1,符合算法结果正确。

采用FPGA采集卡与VHDL语言的灰度变换图像增强算法设计

3 结论

本文设计开发了一款以FPGA 为核心控制芯片嵌入式图像采集卡。采集卡以FPGA 为逻辑和算法实现的核心器件,不仅实现了传统意义上的图像采集,而且实现了CCD 相机控制和激光器同步曝光功能,打破了以往单纯靠增加硬件设备实现同步控制的方法,简化了系统硬件结构并节约系统成本。此外,在系统中嵌入了图像增强算法和采用PCI接口与计算机连接满足了高速采集的要求。根据所选芯片的自身特点,设计了相关的图像增强算法。用VHDL和原理图结合的方法对FPGA 进行编程,实现了图像采集系统的各个功能模块。在FPGA内嵌入了图像增强集成系统,用硬件并行处理实现,经仿真该法效果很好。(作者:李雅莉,彭平良)

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

    关注

    1600

    文章

    21281

    浏览量

    592866
  • 芯片
    +关注

    关注

    446

    文章

    47705

    浏览量

    408872
  • 嵌入式
    +关注

    关注

    4976

    文章

    18246

    浏览量

    287941
  • vhdl
    +关注

    关注

    30

    文章

    814

    浏览量

    127666
收藏 人收藏

    评论

    相关推荐

    基于FPGA采集卡图像增强算法应用研究

    设计的FPGA卡实现带修改参数的灰度变换图像增强算法,给出算法的详细表达式及其实现的定点化子程序,并且给出了
    发表于 01-15 16:09 2096次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>采集卡</b>的<b class='flag-5'>图像</b><b class='flag-5'>增强</b><b class='flag-5'>算法</b>应用研究

    图像的几种常见的灰度是什么

    灰度变换也被称为图像的点运算(只针对图像的某一像素点)是所有图像处理技术中最简单的技术,其变换形式如下: 其中,T是
    的头像 发表于 08-07 10:02 1222次阅读
    <b class='flag-5'>图像</b>的几种常见的<b class='flag-5'>灰度</b>是什么

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

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

    VHDL生成灰度图像

    大神们,有谁会用VHDL语言生成8位灰度图像的思路呢?
    发表于 12-07 15:57

    如何采用FPGA实现图像采集卡的设计?

    如何采用FPGA实现图像采集卡的设计?
    发表于 04-29 06:45

    一种基于小波变换灰度图像水印算法

    本文提出了一种基于小波变换采用灰度图像作为水印的盲水印算法,水印经过图像置乱后,把水印分解成8
    发表于 07-15 10:23 16次下载

    FPGA实现共轭变换图像处理方法

    本篇论文就针对共轭变换图像处理方法在微光图像处理领域的应用,就如何在FPGA上实现共轭变换图像处理方法展开研究。首先在Matlab环境下,对常用的
    发表于 11-24 11:35 56次下载
    用<b class='flag-5'>FPGA</b>实现共轭<b class='flag-5'>变换图像</b>处理方法

    灰度变换有哪三种(三种灰度变换详解)

    三种灰度变换常用的有图像反转、对数变换和伽马(幂律)变换灰度变换是指根据某种目标条件按一定变换
    发表于 01-12 19:22 3.5w次阅读

    基于opencv的灰度变换

    不同灰度变换只是使用的公式不同而已,核心思想都是在空间域直接对每一个像素的灰度值进行判断处理,代码很简单。
    发表于 01-13 10:26 3689次阅读
    基于opencv的<b class='flag-5'>灰度变换</b>

    matlab灰度变换函数

    灰度变换通过对原图像素值重新分配实现, 目的是使图像中表现较暗的像素值, 通过灰度变换函数映射的方法使较暗的像素值增大, 这样图像的亮度就提
    发表于 01-13 21:29 1.2w次阅读

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

    在MATLAB数字图像处理领域,如何实现空间域图像增强灰度变换,以及图像直方图的均衡和匹配(配准)?本文通过大量的图片
    发表于 01-13 21:56 1w次阅读
    MATLAB如何实现<b class='flag-5'>图像</b><b class='flag-5'>增强</b><b class='flag-5'>灰度变换</b>直方图均衡匹配

    图像处理之图像灰度变换

    灰度变换函数描述了输入灰度值和输出灰度值之间变换关系,一旦灰度变换函数确定下来了,那么其输出的灰度
    发表于 09-15 08:53 7784次阅读

    直接灰度变换和直方图均衡的数字图像处理实验资料免费下载

    本文档的主要内容详细介绍的是直接灰度变换和直方图均衡的数字图像处理实验资料免费下载。
    发表于 12-23 08:00 3次下载
    直接<b class='flag-5'>灰度变换</b>和直方图均衡的数字<b class='flag-5'>图像</b>处理实验资料免费下载

    如何使用FPGA实现实时图像增强算法

    针对复杂背景的多目标图像,提出了一种基于直方图的实时自适应图像增强方法。该方法根据自适应直方图窗口选择高低阈值,通过灰度线性变换
    发表于 02-03 15:21 10次下载
    如何使用<b class='flag-5'>FPGA</b>实现实时<b class='flag-5'>图像</b><b class='flag-5'>增强</b><b class='flag-5'>算法</b>

    如何使用FPGA实现图像灰度级拉伸算法

    为了调整图像数据灰度,介绍了一种图像灰度级拉伸算法FPGA实现方法,并针对
    发表于 04-01 14:14 1次下载
    如何使用<b class='flag-5'>FPGA</b>实现<b class='flag-5'>图像</b><b class='flag-5'>灰度</b>级拉伸<b class='flag-5'>算法</b>