⛄一、八方向Sobel算子的边缘检测算法简介
1 引言
随着数字图像的广泛应用, 对图像精度的要求也逐步提高。边缘是目标图像与背景图像的分界, 是图像最基本的特征之一。图像边缘蕴含了图像丰富的内在信息 (如方向、阶跃性质与形状等) , 因此边缘提取是图像分析和识别领域中一个十分重要的课题。边缘检测作为一个预处理过程, 广泛应用于图像分割、模式识别和运动分析等领域。在灰度图像中, 边缘表现为图像局部的灰度不连续性, 边缘点对应于一阶微分极大值点或二阶导数的零交叉点。传统的边缘检测方法有Roberts、Sobel、Prewitt、Laplacian、Marr、Wallis、形态学算子及小波变换等。这些算子主要是应用空域卷积算法, 通过模板与图像的卷积来提取边缘。空域卷积算法具有较强的普适性和计算速度快等优势, 因此得到了广泛的应用。但传统的边缘检测算法对图像边缘的方向特征考虑较少, 常丢失部分边缘细节。本文以Sobel算子为模型, 提出了一种多方向的边缘检测算法, 该算法采用0°、22.5°、45°、67.5°、90°、112.5°、135°、157.5°8个方向的模板进行检测, 使得检测出的图像边缘较为完整, 连续性较好。
2 边缘检测算法
2.1 Sobel算子基本原理
假设连续图像函数为f (x, y) , 函数在 (x, y) 处的梯度是一个具有方向和大小的矢量[8], 即:
式中, i、j分别为x、y方向的单位矢量。基于梯度的算子都建立在这一基础之上。梯度算子的幅值和方向分别为:
由式 (2) 计算出的grad[f (x, y) ]值即为图像在 (x, y) 处的边缘数据。上式是针对连续图像函数给出的定义, 而在实际应用中采集的图像是以像素为单位的离散数据, 因此在数字图像处理中常用相邻或间隔像素差分值来表征图像的边