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

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

3天内不再提示

利用高速可编程逻辑器件的图像边缘检测器的解决方案

电子设计 来源:郭婷 作者:电子设计 2019-08-02 08:09 次阅读
引言

图像边缘检测是图像处理的一项基本技术,在工业、医学、航天和军事等领域有着广泛的应用。图像处理的速度一直是一个难题。虽然DSP具备指令流水线特性和很高的处理速度,但其速度仍然很受限制,而利用高速可编程逻辑器件FPGACPLD来设计图像边缘检测器可以很好的克服这个问题,是一种全新的解决方案。

1 图像边缘检测算法

用于图像边缘检测的算法很多,诸如Rorberts算子、Sobel算子、Prewitt算子、Laplaceian算子等,由于Sobel算法只涉及到加法操作,并且可以取得很好的效果,所以是最常用的边缘检测算法。由于图像在边缘附近会出现灰度上的突变,所以,Sobel边缘检测方法以原始图像灰度为基础,并通过考察图像每个像素在某个领域内灰度的变化,然后利用边缘邻近的一阶导数最大值来检测边缘,再设置权重来检测水平、垂直、左对角、右对角等各个不同方向上密度幅度的不同来实现边沿检测。图1所示是一个3×3像素的举例,其水平、垂直、左对角和右对角图像上密度幅度的变化可以表示为:

利用高速可编程逻辑器件的图像边缘检测器的解决方案

其中,H、V、DL、DR用于计算梯度的大小和方向,而梯度的大小可由正式给出一个普遍的估计值:

Magnitude=Max(H,V,DR,DL)

这样,通过对图像灰度作直方图分析,便可以给出区分度阀值,如果Magnitude大于这个阀值,则该像素为边界像素,否则为一般像素。

2 系统设计

该边缘检测器以ALTERA公司的FLEX10K20芯片为核心器件。由图像传感器获取的图像经前端处理器处理即可得到3×3像素图形数据,然后送入各个滤波器进行滤波,最后将有关结果送输出处理模块处理后输出。

边缘检测的关键是求出四个方向的图像梯度数据绝对值的最大值,同时判别最大值出现的方向,其内部结构如图3所示,边缘检测的核心部分包括滤波器FILTER、比较器COMPARE、边界判断器JUDGE和寄存器等。

利用高速可编程逻辑器件的图像边缘检测器的解决方案

2.1 滤波器的设计

滤波器(FILTER)的设计可采用两级并行流水线方案,其内部结构如图4所示。图中的QA、QB、QC、QD、QE、QF对应接上Q0、Q3、Q6、Q2、Q5、Q8表示水平方向滤波,其输出则为H_FILTER。垂直方向滤波器、左对角滤波器和右对角滤波与水平方向滤波器类似。为了提高加法运算的速度,加法器的设计可选用超前进位加法器。

利用高速可编程逻辑器件的图像边缘检测器的解决方案

2.2 比较器的设计

比较器模块的功能是比较两个输入值以得到其最大值。其VHDL源程序如下:

利用高速可编程逻辑器件的图像边缘检测器的解决方案

2.3 边界判断器的设计

边界判断器JUDGE的功能是根据区分度阀值、四个滤波器的输出及其最大值进行边界的判断。其VHDL源程序如下:

利用高速可编程逻辑器件的图像边缘检测器的解决方案

3 仿真分析

事实上,对于图像边缘检测中的sobel算法来说,若使用FPGA来设计,则H、V、DR、DL四个方向的滤波可以全部并行。另外,由于每个方向的滤波器设计时均采用一级四路并行加法器与一级双路并行加法器相串联,因此,算上两级串行比较器。实际上,整个过程只有四级串行结构。

4 结束语

对于本文所设计的系统,假设使用40 MHz的系统时钟,则处理一个像素点的时间约100 ns,也就是说,处理一张800×600的图像所用的时间不到50 ms。由此可见,该设计可大大提高图像边沿检测的处理速度。

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

    关注

    554

    文章

    8031

    浏览量

    349385
  • FPGA
    +关注

    关注

    1630

    文章

    21759

    浏览量

    604373
  • cpld
    +关注

    关注

    32

    文章

    1248

    浏览量

    169440
收藏 人收藏

    评论

    相关推荐

    可编程逻辑器件

    可编程逻辑器件到底是干什么用的呢,简单的说,就是通过重新写程序,重新注入到这个器件中达到实现其它的功能。最常见的当属电脑了。电脑本身除了加法,减法和简单的逻辑运算四种。比如要是想实现一个功能让电脑
    发表于 04-15 10:02

    可编程逻辑器件发展历史

    )几个发展阶段,其中 CPLD/FPGA 属高密度可编程逻辑器件,CPLD 和 FPGA 是 80年代中后期出现的,其特点是具有用户可编程的特性。 利用 CPLD/FPGA,电子系统设计工程师可以在实验室
    发表于 02-26 10:08

    可编程逻辑器件是如何发展的?

    可编程逻辑器件是如何发展的?
    发表于 04-29 06:23

    PLD可编程逻辑器件

    PLD可编程逻辑器件 英文全称为:programmable logic device 即 PLD。PLD是做为一种通用集成电路产生的,他的逻辑功能按照用户对器件编程来确定。一般的PLD
    发表于 07-22 09:05

    可编程逻辑器件设计

    可编程逻辑器件设计 (264页,nlc格式)
    发表于 03-25 16:41 66次下载

    可编程逻辑器件基础及应用实验指导书

    可编程逻辑器件基础及应用实验指导书 《可编程逻辑器件基础及应用》是一门侧重掌握可编程逻辑器件的基本结构和原理的课程。重点是使学生掌握基于可编程
    发表于 03-24 14:22 29次下载

    什么是PLD(可编程逻辑器件)

    什么是PLD(可编程逻辑器件) PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)
    发表于 06-20 10:32 2.7w次阅读
    什么是PLD(<b class='flag-5'>可编程逻辑器件</b>)

    基于可编程逻辑器件的数字电路设计

    基于可编程逻辑器件的数字电路设计  0 引 言   可编程逻辑器件PLD(Programmable Logic De-vice)是一种数字电路,它可以由用户来进行编程和进行配置,利用
    发表于 11-16 10:46 1627次阅读
    基于<b class='flag-5'>可编程逻辑器件</b>的数字电路设计

    EDA技术与应用(可编程逻辑器件)

    7.1 可编程逻辑器件的基本原理 7.2 可编程逻辑器件的设计技术 7.3 可编程逻辑器件编程与配置
    发表于 05-23 10:46 142次下载
    EDA技术与应用(<b class='flag-5'>可编程逻辑器件</b>)

    可编程逻辑器件FPGA/CPLD结构与应用

    可编程逻辑器件FPGA/CPLD结构与应用
    发表于 12-11 23:38 0次下载

    可编程逻辑器件(书皮)

    可编程逻辑器件(书皮)
    发表于 07-10 14:34 0次下载

    可编程逻辑器件EPLD是如何设计的

    可编程逻辑器件(Electrically Programmable Logic Device,EPLD)是指采用电信号的可擦可编程逻辑器件
    发表于 08-22 18:12 1471次阅读

    可编程逻辑器件的结构

    常见的可编程逻辑器件分为FPGA、EPLD(CPLD)。下面简单介绍两类器件的结构和区别。
    的头像 发表于 03-24 14:18 1207次阅读
    <b class='flag-5'>可编程逻辑器件</b>的结构

    可编程逻辑器件测试

    可编程逻辑器件 (Programmable Loeie Device,PLD)是一种用户编程实现某种逻辑功能的逻辑器件,主要由
    发表于 06-06 15:37 696次阅读
    <b class='flag-5'>可编程逻辑器件</b>测试

    什么叫可编程逻辑器件 可编程逻辑器件有哪些特征和优势?

    可编程逻辑器件(Programmable Logic Device,PLD)是一类集成电路器件,可以根据用户的需求进行编程和配置,以实现特定的逻辑功能。它们具有
    发表于 09-14 15:25 2931次阅读