本发明属于数字图像处理与模式识别技术领域,具体涉及一种边缘检测方法。
背景技术:
图像的边缘能直接反应物体的轮廓和拓扑结构信息。边缘检测技术是数字图像处理、模式识别、计算机视觉的重要基础之一,广泛应用于工业检测、图像分割、运动检测、人脸识别和目标跟踪等领域。
图像的边缘一般是图像的灰度或者颜色发生剧烈变化的地方,而这些变化往往是由物体的形状结构、外部的环境光照和物体的表面对光线反射造成的。因而传统的边缘检测方法一般分为两大类:灰度图像边缘检测方法和彩色图像边缘检测方法。灰度图像的边缘是像素的灰度值发生变化的地方,这些变化通常是屋顶变化或者阶跃变化,图像屋顶变化或者阶跃变化的大小一般用灰度图像一阶导数或二阶导数的大小来描述,经典的灰度图像边缘检测方法有SUSAN边缘检测算子,Canny边缘检测算子,沈俊边缘检测算子等。彩色图像的边缘是图像的颜色在局部区域内发生剧烈变化的像素的集合,也可以分为标量运算法和矢量运算法,经典的彩色图像边缘检测方法有多维梯度法等。
但是以上传统边缘检测方法都是基于二维图像特征,往往工作量大、鲁棒性差、精确度不高,在目标边缘和背景的灰度或者颜色没有发生剧烈变化的情况下,目标轮廓与背景相似,如灰度类似,没有明显轮廓边缘,上述传统方法难以检测到非共面轮廓边缘,导致最终无法将目标的边缘检测出来,存在漏检率高的问题。
技术实现要素:
本发明的目的在于提出一种边缘检测方法,由于加入了图像的深度信息,再结合灰度图像,能够快速准确地检测出图像的边缘信息,尤其降低了在目标轮廓与背景相似时的边缘漏检率,可以为机器视觉提供基本的信息。
为了解决上述技术问题,本发明提供一种边缘检测方法,获取原始图像的灰度图象和深度图像,分别对灰度图像和深度图像进行边缘检测,得到共平面灰度边缘图像和非共平面深度边缘图像,将共平面灰度边缘图像和非共平面深度边缘图像融合,获得最终的边缘检测结果。
进一步,使用Xtion传感器获得所述灰度图像和深度图像。
进一步,使用Canny算子分别对灰度图像和深度图像进行边缘检测,获得共平面灰度边缘图像和非共平面深度边缘图像。
进一步,在使用Canny算子对深度图像进行边缘检测前,先对所述深度图像进行滤波处理去除噪声。
进一步,融合所述共平面灰度边缘图像和非共平面深度边缘图像的方法为:对共平面灰度边缘图像进行边缘跟踪,若检测到边缘间断,则在非共平面深度边缘图像中的相应位置的领域中搜索边缘点来连接共平面灰度边缘图像中的间断。
本发明与现有技术相比,其显著优点在于,(1)本发明同时利用了图像的灰度信息和深度信息,利用灰度信息进行目标共平面边缘检测,利用深度信息进行非共平面边缘检测,然后将两次检测的结果相融合,可以在目标与背景相似,如灰度类似,没有明显轮廓边缘情况下方便地检测出边缘轮廓,提高了边缘检测效果;(2)本发明方法不仅能够很好的检测出目标平面内部边缘,而且由于使用深度图像进行边缘提取,因而对目标的边缘轮廓也有很好的检测效果;(3)由于利用Xtion传感器同时采集深度图像和灰度图像,同时对深度图像和灰度图像进行边缘提取,再将提取出来的边缘相融合,该方法实现简单,检测速度快,对硬件平台要求较低,边缘检测率高。
附图说明
图1是本发明边缘检测方法流程图。
图2是本发明中实验所用场景图像。
图3是本发明实验中获取的灰度图像。
图4是本发明实验中获取的深度图像。
图5是本发明实验中经中值滤波后的深度图像。
图6是本发明实验中使用传统Canny算子对深度图像进行边缘检测获得的共平面灰度边缘图像。
图7是本发明实验中使用Canny算子对深度图像进行边缘检测,得到的非共平面深度边缘图像。
图8是使用本发明方法获得的最终检测结果.
具体实施方式
本发明所述边缘检测方法,包括以下具体步骤:
步骤1,利用Xtion传感器获取灰度图像和深度图像。
步骤2,对深度图像进行中值滤波,去除噪声。由于Xtion传感器采集到的深度图像常常伴有椒盐噪声,因此利用中值滤波去除椒盐噪声,一般采用大小为3×3的滤波模板。
步骤3,获取灰度图象的共平面灰度边缘图像。可以选用SUSAN边缘检测算子、Canny边缘检测算子或者沈俊边缘检测算子等方法提取灰度图像的共平面边缘图像。采用经典的Canny算子对灰度图像进行边缘检测的过程为:
3.1用高斯滤波器对输入图像进行卷积滤波,滤除噪声,减小噪声对梯度计算的影响。高斯滤波器如式(1)所示,
式(1)中,G为二维高斯核向量,σ为高斯核函数在x,y方向的标准偏差,x,y分别为高斯内核在x,y方向的大小。
3.2使用Sobel算子计算经滤波后图像的梯度的幅值M和方向θ,如式(2)和(3)所示,
θ=arctan(Gy/Gx) (3)
式(2)和(3)中,Gx,Gy分别是二维高斯核向量G在x,y方向的一阶偏导数矩阵。
3.3进行非极大值抑制,遍历梯度幅值图像M[i,j]上的每一个像素,计算当前像素在两个梯度方向上的梯度幅值,并跟相邻两个像素的梯度幅值相比较,若当前像素的梯度幅值大于等于相邻两个像素的梯度幅值,则当前像素可能是边缘像素,否则为非边缘像素。将图像边缘细化为一个像素宽度,梯度幅值图像M[i,j]经过前述非极大值抑制得到图像NMS[i,j]。
3.4对图像NMS[i,j]进行双阈值检测和边缘连接,用高阈值和低阈值来提取边缘。遍历图像NMS[i,j],分别用高阈值和低阈值进行边缘检测得到对应的边缘图像E1和E2,其中E1为强边缘点,可能存在间断,E2为弱边缘点。若检测到边缘图像E1的边缘间断,则在边缘图像E2中相应位置的8领域中搜索边缘点来连接边缘图像E1中的边缘间断, 从而将边缘图像E1中的边缘间断都连接起来,得到共平面灰度边缘图I1,完成对灰度图像的边缘检测。
步骤4,获取深度图像的非共平面深度边缘图像。采用Canny算子对深度图像进行边缘检测,具体方法类似步骤3,仍然对深度图像进行高斯滤波、用Sobel算子进行梯度提取、非极大值抑制、双阈值检测和边缘连接等步骤,得到非共平面深度边缘图I2,完成对深度图像的边缘检测。
步骤5:将共平面灰度边缘图I1和非共平面深度边缘图I2融合。对共平面灰度边缘图I1进行边缘跟踪,若检测到边缘间断,则在非共平面深度边缘图I2中的相应位置的8领域中搜索边缘点来连接共平面灰度边缘图I1中的间断,从而将共平面灰度边缘图I1中的间断都连接起来,得到最终的边缘检测图像。
前述方法针对目标边缘和背景的灰度或颜色差别不大的情况,该方法利用图像的深度信息,直接建立深度约束条件,判断图像上的像素点是否满足深度约束条件,若满足则判断该点不是边缘轮廓点,若不满足,则判断该点是边缘轮廓点,从而较容易地获得非共面轮廓边缘,然后再结合灰度图像信息,获得共面图像边缘,从而完成边缘检测。
本发明的有益效果可以通过以下实验进一步说明:
本实验以Matlab2012b为实验平台,实验利用图像大小为640×480,帧频为30Hz的Xtion三维传感器进行灰度图像和深度图像采集。如图2所示,利用地面上的白纸作为白色背景,在高度为30厘米的方形纸盒上包裹一张白纸作为与背景颜色相似的目标,在白纸上放两张扑克。此时由于背景和纸盒都是白色,目标轮廓与背景相似,具体操作步骤如下:
第一、利用Xtion传感器采集一段视频,从视频中剥离出实验场景的灰度图像和深度图像,如图3和图4所示。
第二、对深度图像进行中值滤波,对深度图像进行滤波后的图像如图5所示。
第三、获取共平面灰度边缘图像I1,如图6所示。
第四,获取非共平面深度边缘图像I2,如图7所示。
第五,将图6所示共平面灰度边缘图I1和图7所示非共平面深度边缘图I2融合,得到如图8所示的最终边缘检测图像。
将图8与图1和图6对比,即将使用本发明方法获得的检测图像与原始实验场景图像和使用传统Canny边缘检测之后的图像进行对比,明显看出,在目标轮廓与背景相似, 没有明显轮廓边缘的情况下,本发明方法不仅可以检测出共面图像的边缘信息,而且对目标边缘轮廓也有很好的检测效果。
综上所述,本发明结合图像的灰度信息和深度信息,利用Canny算子分别对灰度图像和深度图像进行边缘检测,得到共平面灰度边缘图和非共平面深度边缘图,再将两幅边缘图像融合,得到最终的边缘检测结果。实验表明,该方法快速简单直接,检测率较高,不仅可以用于普通图像的边缘检测,而且对于目标边缘轮廓和背景相似的情况也有着很好的检测效果。