Matlab与FPGA图像处理——Roberts、Prewitt、Sobel、LOG、Canny等常见的图像边缘检测算子比较

时间:2024-03-27 14:48:53

MATLAB 与 FPGA无线通信、图像处理、数字信号处理系列

基于FPGA的实时边缘检测系统设计,sobel边缘检测流水线实现

        图像的边缘是图像在亮度级上的阶梯变化的位置,因此可以通过来一阶微分增强边缘的变化,以此检测边缘位置;二阶导数对图像函数的一阶导数求导,能够使检测到的边缘更加的精细。
        这里通过 MATLAB 软件中的几种边缘检测算子对一幅图像进行边缘检测,对比各种算子的性能并选择一种作为 FPGA 硬件实现的边缘检测算法
        使用图像处理中常用的 Lena 图像,该图像的边缘信息丰富,便于进行算法的性能对比。由于这几种边缘检测算子只能操作灰度图像,所以首先得到灰度图像,在灰度图像中加入均值为0、方差为0.01的高斯噪声,得到噪声图像,使用不同的边缘检测算子处理输入的两幅灰度图,分析边缘检测和抗噪性能。
        如图所示为分别为 Lena 图像的原图像、无噪声灰度图像和有噪声灰度图像,可以看到加入噪声之后图像上有明显变化。
Matlab与FPGA图像处理——Roberts、Prewitt、Sobel、LOG、Canny等常见的图像边缘检测算子比较
        如图所示为输入无噪声的灰度图像所得到的5种边缘检测算子的效果图,可得:Roberts 算子可以得到非常细的边缘,定位的精度很高,能够检测到的边缘较少,最大的优点是计算量小速度快,适用于边缘明显且噪声较少的图像分割。Prewitt 算子和 Sobel 算子检测出的结果类似,相比之下 Sobel 检测的边缘更加突出;LOG 和 Canny 算子检测出的边缘比较连贯,且具有较好的平滑性,边缘细节也更多。
Matlab与FPGA图像处理——Roberts、Prewitt、Sobel、LOG、Canny等常见的图像边缘检测算子比较
        如图所示为加入噪声后的边缘检测对比图。可知噪声对边缘检测的影响很大:Roberts 算子丢失了很多边缘,已经影响到图像的肉眼识别;Prewitt 算子和 Sobel 算子的抗噪声性能比 Roberts 算子好一些,有一定的抑制噪声的能力;LOG 算子和 Canny 算子检测的边缘清晰连贯,但是噪声情况下会出现很多伪边缘,在噪声较大时已经影响到正常的识别,Canny 算子在这方面更加明显。在实际应用中 Sobel 算子的效率要高于 Canny 算子,适用于对效率要求较高而不关心细纹理情况的场合。
Matlab与FPGA图像处理——Roberts、Prewitt、Sobel、LOG、Canny等常见的图像边缘检测算子比较
        通过综合考虑边缘定位的效果、算法的抗噪声性能和算法实现的复杂度,选择 Sobel 算子作为实时视频图像的边缘检测算子,搭建实时视频采集平台后使用 FPGA 对 Sobel 边缘检测算法进行硬件加速

MATLAB 与 FPGA无线通信、图像处理、数字信号处理系列

基于FPGA的实时边缘检测系统设计,sobel边缘检测流水线实现