基于FPGA的Sobel边缘检测实现

来源 :数字化用户 | 被引量 : 0次 | 上传用户:rongsiyouyu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】Sobel边缘检测是图像分割处理中的一种常用方法,经常用于各种图像处理当中。但是传统的图像处理工具由于大多数都是顺序处理的,图像处理速度偏慢。在要求实时的图像处理中会显得力不从心。而FPGA由于其并行的处理特点,可以并行处理大量的数据。在实时图像处理中可以发挥出巨大的优势。所以用FPGA研究图像处理是很有必要的。本文主要工作是利用FPGA,选择Verilog语言实现了Sobel边缘检测。
  【关键词】FPGA,Sobel,Verilog;
  在图像处理中边缘蕴含了丰富的信息,是图像的基本特征之一。边缘检测不仅能减少图像处理的工作量,还能保留图像中物体的形状特性。所以研究边缘检测是非常有必要的。FPGA是利用硬件编程语言对图像进行处理,可以同一时间处理大量的数据,在此利用FPGA的并行结构特性和流水线技巧,快速实现了Sobel边缘检测算法 。为图像的后续处理打下了基础。
  一、Sobel边缘检测算法
  边缘检测算法都是通过梯度算子来实现的。经典的梯度算子有Sobel、Kirsch、Roberts等。在求边缘的梯度时需要对每个像素点进行计算,工作量是比较大的。在这些算法中Sobel具有计算简单、检测效果好的特点,是一种被广泛应用的算法。Sobel算子是一阶导数的边缘算子。是利用水平和垂直方向上3X3的Sobel算子模版,与选定图像中同样大小的窗口中的每个像素点做卷积求和运算,窗口中心点为待求的像素点。计算出图像水平和垂直方向的梯度值,然后对水平和垂直方向的梯度值的平方求和,再开方。与设定的阈值进行比较,如果结果大于阈值边视为边缘点,否者就不是边缘点。
  图1为水平方向的Sobel矩阵算子,图2为垂直方向的Sobel矩阵算子。图3为3X3模版的像素灰度值。
  利用Sobel算子对图3中的3X3模版做卷积和计算。就可以得到p5像素处水平和垂直方向的梯度值Gx和Gy。最后利用
  (1)
  算出p5处的灰度值,再与设定的阈值进行比较。若大于阈值就视为边缘点,不然就是普通点。
  二、Sobel边缘检测算法的硬件系统实现
  (一)Sobel实现方法选择
  由于Quartus II 9.0自带有很多的IP核,可以调用IP核进行乘法、并行相加来实现Sobel边缘检测。但是这样就会涉及到补码、负数等。实现方法较为复杂。在本文中提出一种简单的算法实现边缘检测,把复杂的问题简单化。
  对于水平模版,把图3中的第1列和第3列像素点分别与其相应的位置做卷积和,并且分别取第1列和第3列的卷积和的绝对值比较大小,把较大值认为Gx。
  Gx=max{(p1+2p4+p7),(p3+2p6+p9)} (2)
  对于垂直模版,把图2中的第1行和第3行像素点分别与其对应的位置做卷积和,并分别取第1行和第3行的卷积和的绝对值比较大小,把较大值认为Gy。
  Gy=max{(p1+2p2+p3),(p7+2p8+p9)} (3)
  (二)Sobel的硬件实现
  由于Sobel的实现需要3X3的像素模版与水平方向和垂直方向的卷积因子进行卷积求和,所以这里利用Quartus II 9.0自带的IP核Shift Register(RAM-based)构建三行以此为基础获得3X3的像素模版。如图4所示
  图4 移位寄存器
  在得到3X3模版后利用(2)、(3)进行硬件实现,关键代码如下
  begin
  Gy1<=p11+(p12<<1)+p13;
  Gy2<=p31+(p32<<1)+p33;
  Gy <=Gy1>Gy2? Gy1-Gy2 : Gy2-Gy1;
  end
  begin
  Gx1<=p11+(p21<<1)+p31;
  Gx2<=p13+(p23<<1)+p33;
  Gx <=Gx1>Gx2?Gx1-Gx2 : Gx2-Gx1;
  end
  经过一系列运算就得到Gx与Gy,再根据公式(1)与自己设置的阈值,就能实现Sobel边缘检测。
  三、实验结果
  在视频采集系统里面加入Sobel边缘检测模块,编译并下载程序,运行系统,实验结果如图5所示。
  实验效果显示可以很好的进行边缘检测,经过边缘检测处理后也为后续更复杂的图像处理打下了基础。
  四、结束语
  通过利用FPGA的并行特性,完成了3X3模版像素的提取和Sobel边缘检测算子的处理。通过FPGA的流水线结构和并行特点处理了大量的数据,最终实现了Sobel边缘检测。为更加复杂的图像处理进行了铺垫。
  参考文献:
  [1]冈撒雷斯.数字图像处理.北京:电子工业出版社.
  [2]王涛,全书海.基于改进Sobel算子的车牌定位方法.微计算机信息,2008,24(5):63—65.
  [3]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.
  [4]Ahera Corporation.Embedded Design Handbook,2009.
  [5]段瑞玲,李庆祥,李玉和.图像边缘检测方法研究综述[J].光学技术,2005,31(3):415—419.
其他文献
【摘 要】随着科学技术的不断发展,工业进程的不断加快,国民经济水平不断提升,人们的生活质量得到明显改善。但是,在高速发展的经济背后,生态环境的污染与破坏问题也日益严重。环保监测应急系统是一种可以对日常环境问题进行实时监测,能够预警突发性环境问题和生态事件,并对其提出相应的应急对策。同时,作为一种综合性环境监测平台,它可以公开发布各类环境出现的状况,使公众及时了解突发性污染的实时状况,更好的做出反应
就钢筋水泥建筑物常用的三类检测方法即:超声波法(弹性波法)、雷达法、温度记录法的有关内容加以介绍,并举例说明.
期刊
当前,计算机局域网网络安全问题已成为阻碍我国局域网建设的主要问题,迅速解决这一问题,有利于维护社会网络安全,打击网络犯罪活动。因此人们迫切需要解决计算机局域网网络安全问题,维护计算机局域网网络安全,促进计算机局域网网络安全稳定健康发展,使计算机技术得到更为广泛的应用。
【摘 要】视频识别在火灾预防领域有着广泛的应用前景。然而,现有视频火灾探测技术在抗干扰、降低误报及漏报率方面研究进展有限,且开发成本较高,系统代码冗余度较高,识别效率较低。本文在分析了火焰视觉特征及OpenCV技术特性的基础上,深入探讨了火焰的颜色特征、形态特征、运动特征的图像识别算法,提出了一套基于OpenCV技术的火灾视频识别方法。  【关键词】视频识别;火焰;OpenCV  研究了色彩,纹理
随着电子信息和网络技术的日新月异,互联网技术也普及到千家万户,随之网络黑客等攻击行为也不断出现,互联网的安全问题也受到各界的关注。路由器就是计算机与网络信息之间的桥梁,在计算机网络安全中有着非常重要的作用。当前许多用户都是使用路由器跟ISP之间相互连接并实现互联网的访问,其安全设置对用户的内部网络安全有着举足轻重的地位。本文就路由器的安全设置维护策略进行探讨。
数字技术的发展和应用 ,使射线检测从传统的射线胶片评判转化为利用计算机对数字图像进行分析处理。介绍利用高精度扫描设备 ,将射线胶片转化为数字图像并进行缺陷定量分析的
期刊
【摘 要】计算机软件技术是计算机的核心,其开发技术直接影响着计算机的运行。目前,在我国计算机软件开发技术方面取得了一些成绩的同时也存在一些问题,因此,要在分析现状的基础上把握我国计算机软件开发技术的应用及其未来发展方向。  【关键词】计算机;软件开发;现状;应用;发展  一、计算机软件开发技术概述  计算机作为人类社会进步和发展的代表,已经普及到了社会的各行各业,也已经深入到人们生活的方方面面,比
根据电力行业大径焊口(直径φ≥168 mm)的特点,介绍了超声波检验时根部区域反射波的类型,对反射波的静态和动态波形进行了分析,提出了根部缺陷反射波的识别与判定方法.