基于FPGA的Sobel边缘检测应用
扫描二维码
随时随地手机看文章
摘 要: 针对目前数字图像处理速度慢的问题, 提出了一种基于 FPGA器件的 Sobel 边缘检测实现方案。Sobel 边缘检测分别在FPGA和MATLAB上仿真实现,仿真结果表明,该方案可以大幅提高Sobel 边缘检测的速度,并且获得了很好的边缘检测效果。最后列举了一个基于FPGA器件的Sobel边缘检测的应用实例。
关键词: Sobel; MATLAB;FPGA;边缘检测;DE2-70
边缘检测是图像处理、计算机视觉的基础内容;是图像分析与识别的重要环节;是目标检测、图像分割所依赖的重要特征。在 PC机上,MATLAB是图像处理的强大工具,如何将成熟的算法转移到嵌入式系统上实现是急需解决的问题。在实时图像处理中,用Sobel算子进行物体的边缘检测是经常用到的算法, 由于对处理速度要求较高且算法处理的数据量较大,用一般的软件实现会比较慢, 无法达到实时系统的要求。而使用FPGA芯片, 用硬件实现对底层的图像预处理可提高图像处理的速度, 满足系统实时要求。FPGA技术的关键就是利用强有力的设计工具以缩短开发周期,提高器件资源利用率,提供综合器的选择(例如在最佳速度和设计规模之间做出选择)。随着FPGA 芯片技术的进步, 其价格逐步降低,而性能迅速增强, 这为使用 FPGA 芯片搭建图像处理平台提供了可能[1]。
1 Sobel边缘检测算法
Sobel算法是一种较成熟的微分边缘检测算法,它计算简单,且能产生较好的检测效果, 对噪声具有平滑作用, 可以提供较为精确的边缘方向信息[2]。
Sobel 边缘检测算子使用两个方向算子(垂直算子和水平算子),如图1所示。其原理是分别用这两个算子对图像进行卷积运算,得到两个矩阵,再求这两个矩阵对应位置的两个数的均方根,得到一个新的矩阵,即为灰度图像矩阵中各个像素点的梯度值。最后将梯度值与门限T进行比较,当梯度值≥T时,规定该点的灰度值为255,反之为0。