1、原理
图像的边缘是图像的基本特征,边缘点是灰度阶跃变化的像素点,即灰度值的导数较大或极大的地方,边缘检测是图像识别的第一步。用图像的一阶微分和二阶微分来增强图像,本质上计算的就是灰度的变化情况,而边缘也就是灰度变化的地方。因此,这些传统的一阶微分算子如Robert、Sobel、prewitt等,以及二阶微分算子Laplacian等等本质上都是可以用于检测边缘的。
这些算子都可以称为边缘检测算子。边缘检测可以大幅度的减少数据量,剔除那些不相关的信息,保留图像重要的结构属性,一般的边缘检测的步骤有:原始图像 --> 平滑图像 --> 锐化图像 --> 边缘判定 --> 二值化 --> 边缘连接 --> 边缘图像
- 平滑滤波:因为梯度计算容易受噪声影响,所以先使用滤波平滑图像去除噪声。
- 锐化滤波:为了检测边界,需要确定邻域中灰度变换,锐化突出了回答变换的区域。
- 边缘判定:通过阈值或灰度变换,剔除某些处理点,查找边缘点。
- 边缘连接:将间断的边缘连接成有意义的完整边缘,同时去除假边缘。
2、边缘检测算子
2.1梯度算子Robert算子利用局部差分算子寻找边缘,边缘定位精度较高但容易丢失一部分边缘,同时由于没有对图像进行平滑处理因此不具备抑制噪声的能力。该算子对边缘陡峭且噪声较少的图像效果较好。Sobel算子和prewitt算子都考虑了邻域信息,相当于对图像先做加权平滑处理,然后再做微分运算,所以对噪声有一定的抑制能力,但不排除检测结果中出现虚假边缘,并且容易出现多像素宽度的边缘。