- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012最新基于FPGA的Sobel边缘检测应用
2012最新基于FPGA的Sobel边缘检测应用
边缘检测是图像处理、计算机视觉的基础内容;是图像分析与识别的重要环节;是目标检测、图像分割所依赖的重要特征。在 PC机上,MATLAB是图像处理的强大工具,如何将成熟的算法转移到嵌入式系统上实现是急需解决的问题。在实时图像处理中,用Sobel算子进行物体的边缘检测是经常用到的算法,由于对处理速度要求较高且算法处理的数据量较大,用一般的软件实现会比较慢,无法达到实时系统的要求。而使用FPGA芯片,用硬件实现对底层的图像预处理可提高图像处理的速度,满足系统实时要求。FPGA技术的关键就是利用强有力的设计工具以缩短开发周期,提高器件资源利用率,提供综合器的选择(例如在最佳速度和设计规模之间做出选择)。随着FPGA 芯片技术的进步,其价格逐步降低,而性能迅速增强,这为使用 FPGA 芯片搭建图像处理平台提供了可能[1]。
1 Sobel边缘检测算法
Sobel算法是一种较成熟的微分边缘检测算法,它计算简单,且能产生较好的检测效果,对噪声具有平滑作用,可以提供较为精确的边缘方向信息[2]。
Sobel 边缘检测算子使用两个方向算子(垂直算子和水平算子),如图1所示。其原理是分别用这两个算子对图像进行卷积运算,得到两个矩阵,再求这两个矩阵对应位置的两个数的均方根,得到一个新的矩阵,即为灰度图像矩阵中各个像素点的梯度值。最后将梯度值与门限T进行比较,当梯度值≥T时,规定该点的灰度值为255,反之为0。
根据Sobel算子边缘检测的原理可得出如图2所示的Sobel边缘检测算法框图。对一幅图像进行Sobel边缘检测时,首先要利用Sobel算子计算出水平梯度和垂直梯度,这涉及到卷积运算。然后再把两个方向的梯度结合起来,这就涉及到均方根运算,最后进行门限处理来判断图像边缘并输出边缘检测结果,这部分可通过编写Verilog HDL代码实现[3]。
2 Sobel 边缘检测的硬件实现
Sobel边缘检测的硬件实现系统应包含梯度计算模块和门限处理模块,其中梯度计算模块可分为图像行缓冲模块和卷积计算模块。此外,各个模块功能的实现可通过调用 Quartus II软件提供的各种宏功能模块(Megafunctions)来实现,如图3所示。
2.1 图像行缓冲模块器
梯度计算模块主要完成两个Sobel算子分别与图像像素矩阵(3×3窗口)的卷积运算。首先要构造3×3图像像素矩阵,要完成这个功能,必须引入一个容量足够大的存储单元来缓冲串行输入的图像数据流,并把串行图像数据转化为并行的3行图像数据,这样在3个像素时钟后就可以得到3×3图像像素矩阵。以往常使用先入先出栈(FIFO)作为图像数据的缓冲器[4],但对 FIFO的读写操作较为复杂。本文通过调用Quartus II软件提供的基于RAM移位寄存器宏模块altshift_taps也能实现同样功能。
altshift_taps宏模块是一个可配置的、具有抽头(Taps)输出的移位寄存器,每个抽头在移位寄存器链的指定位置输出数据。对MATLAB常用的256×256图像进行Sobel边缘检测,altshift_taps模块参数设置为8 bit输入/8 bit输出、3抽头,相邻两个抽头相距256个寄存器,如图4所示。其中相邻两个抽头的距离是根据图像的大小来设置的,例如在硬件下载仿真上,TRDB-LTM液晶屏能正常显示的图像大小是800×480,此时抽头距离应设置为800。
2.2 卷积计算模块
卷积计算模块是为了得到水平、垂直两个方向的梯度值,要实现卷积运算需要做大量的乘法和加法运算。如果采用以往分立的D触发器和加法器以及乘法器来完成[5],但其结构复杂。本文通过调用 Quartus II软件提供的宏功能模块中的可编程乘加器 altmult_add和可编程多路并行加法器 parallel_add来实现。
卷积运算的具体实现是垂直算子和水平算子使用并行结构,与altshift_taps宏功能模块输出的数据同时相乘并相加,需用到6个可编程乘加器altmult_add模块,其参数设置如图5所示,得到的6个数据可分为水平和垂直两组各3个。再将这两组数据分别送往可编程多路并行加法器parallel_add模块,其参数设置如图6所示,得到两个数据。最后通过调用浮点平方根altfp_sqrt模块来计算这两个数据的均方根,即得到3×3 窗口中心点像素的梯度值,该模块的参数设置如图7所示。该方法可以保证每个周期输出一个像素点的Sobel 梯度值。此外,所用到的这些模块可以根据系统设计需求灵活选用[6]。
2.3 门限处理模块
门限处理模块编写的Verilog HDL代码实现如下:
您可能关注的文档
最近下载
- 公墓施工组织设计.doc VIP
- 2025山东青岛海关缉私局辅警招聘17人笔试备考题库及答案解析.docx VIP
- 插叙的作用(专项训练)(解析版)-备战2025年中考语文一轮复习记叙文阅读技法突破.docx VIP
- 公路养护服务投标方案328页.docx VIP
- 公墓施工组织设计.doc VIP
- 06金蝶云星空化妆品行业解决方案.pptx VIP
- 《慢性肾脏病相关瘙痒管理中国专家共识(2025年版)》解读PPT课件.pptx VIP
- 分析重点段落作用(专项训练)(解析版)-备战2025年中考语文一轮复习记叙文阅读技法突破.docx VIP
- 环境描写及作用(专项训练)(解析版)-备战2025年中考语文一轮复习记叙文阅读技法突破.docx VIP
- 后人类主义文学批评-洞察及研究.docx VIP
文档评论(0)