文章目录
多种边缘检测算法(Sobel算子、Isotropic Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、Canny算子)介绍及比较边缘检测算法简介多种边缘检测算法对比表Sobel算子简介原理优缺点lsotropic Sobel (各向同性 Sobel)算子Roberts算子简介原理优缺点Prewitt算子简介原理优缺点Laplacian算子简介原理优缺点Canny算子简介算法步骤优缺点多种边缘检测算法(Sobel算子、Isotropic Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、Canny算子)介绍及比较
边缘检测算法简介
通常来说,边缘是指图像中像素值有突变的地方,常用于图像的分割领域。
目前,在实际的图像分割中,往往只用到了一阶导数和二阶导数,虽然在原理上可以用到更高阶的导数,但是由于图像中噪声的影响,在纯粹的二阶导数中就会出现对噪声的敏感现象,三阶以上导数信息往往失去了应用价值。
一阶导数的边缘算子:常见的Sobel算子
、Roberts算子
和Prewitt算子
二阶导数的边缘算子:根据二阶导数过零点,常见的有Laplacian算子
,此类算子对噪声敏感前两种都是通过微分算子来检测图像边缘,还有一种是Canny算子
,其是在满足一定约束条件下,推导出来的边缘检测最优化算子。
同时,由于二阶导数对噪声比较敏感,因此通常在使用二阶导数前,需要前对图像进行平滑滤波
,消除部分噪声,再进行边缘检测
。不过利用二阶导数信息的算法是基于过零检测
的,因此得到的边缘点数比较少,有利于后序的处理和识别工作。
各种算子的存在,就是对这种导数分割原理进行实例化计算,是为了在计算过程中能够直接使用的一种计算单位。
多种边缘检测算法对比表
Sobel算子
简介
Sobel算子
是典型的基于一阶导数的边缘检测算子,由于该算子引入了类似局部平均的运算,因此对噪声具有平滑作用,能够很好的消除噪声的影响。
Sobel算子
对像素的位置的影响做了加权,因此与Prewitt算子
,Roberts算子
相比效果更好。
原理
Sobel算子
包含两组3×33 \times 33×3的矩阵,分别为横向和纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。
检测水平方向沿横向模板:
Gx=[−101−202−101]G_x=\begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end{bmatrix}Gx=⎣⎡−1−2−1000121⎦⎤
检测垂直方向沿纵向的模板
Gx=[121000−1−2−1]G_x=\begin{bmatrix} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2 & -1 \end{bmatrix}Gx=⎣⎡10−120−210−1⎦⎤
图像的每一个像素的横向及纵向梯度近似值,可用以下的公式结合,来计算梯度的大小。
G=Gx2+Gy22G=\sqrt[2]{G_x^2 + G_y^2}G=2Gx2+Gy2
然后可用以下公式,计算梯度方向
θ=arctan(GyGx)\theta = \arctan(\frac{G_y}{G_x} )θ=arctan(GxGy)
在以上例子中,如果以上角度θ=0\theta = 0θ=0,即代表该图像拥有纵向边缘,左方较右方暗。
优缺点
优点
由于该算子引入了类似局部平均的运算,因此对噪声具有平滑作用,能够很好的消除噪声的影响。
Sobel算子
对像素的位置的影响做了加权,因此与Prewitt算子
,Roberts算子
相比效果更好。
缺点:
由于Sobel算子
并没有将图像的主题与背景严格地区分开,换而言之就是Sobel算子并没有基于图像灰度进行处理,由于Sobel算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。
lsotropic Sobel (各向同性 Sobel)算子
Sobel算子
另一个形式是各向同性Sobel(lsotropic Sobel),也有两个
一个是检测沿水平边缘的一个是检测沿垂直边缘的
构成:将Sobel算子矩阵中所有的222改成2\sqrt{2}2,就能得到各向同性Sobel
矩阵模板。
Roberts算子
简介
罗伯茨(Roberts)算子又被称为交叉微分算子,它是基于交叉差分的梯度算子,通过局部差分计算检测边缘线条。常用来处理具有陡峭的低噪声图像,当图像边缘接近于+45∘+45^{\circ}+45∘或−45∘-45^{\circ}−45∘时,该算法处理效果更理想。
缺点是对边缘的定位不太准确,提取的边缘线条较粗。
原理
Roberts算子的两个模板:
dx=[−1001]d_x=\begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix}dx=[−1001]
dy=[0−110]d_y=\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}dy=[01−10]
优缺点
优点: 对具有陡峭的低噪声的图像处理效果较好
缺点: 利用Roberts 算子
提取边缘的结果是边缘比较粗,因此边缘定位不是很准确
Prewitt算子
简介
Prewitt算子
是一种一阶微分算子的边缘检测,利用像素点上下、左右相邻的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。
原理
其原理是在图像空间中利用两个方向模板与图像进行邻域卷积来完成,这两个方向模板一个检测水平边缘,一个检测垂直边缘。
dx=[10−110−110−1]d_x=\begin{bmatrix} 1 & 0 & -1\\ 1 & 0 & -1\\ 1 & 0 & -1 \end{bmatrix}dx=⎣⎡111000−1−1−1⎦⎤
dy=[−1−1−1000111]d_y=\begin{bmatrix} -1 & -1 & -1\\ 0 & 0 & 0\\ 1 & 1 & 1 \end{bmatrix}dy=⎣⎡−101−101−101⎦⎤
优缺点
优点:
由于其是加权平均算子,因此对噪声有抑制作用,对灰度渐变和噪声较多的图像处理效果较好
缺点:
像素平均相当于对图像进行滤波,因此Prewitt算子
对边缘的定位不如Roberts算子
Laplacian算子
简介
Laplacian算子
是一种各向同性算子,二阶微分算子,在只关心边缘位置,不考虑其周围的像素灰度差值时较为合适。
Laplacian算子
对孤立像素的响应要比对边缘或线的响应更强烈,因此只适用于无噪声图像。存在噪声情况下,使用Laplacian算子
检测边缘之前,要进行低通滤波。所以,通常的分割算法都是把Laplacian算子
和平滑算子
结合起来,生成一个新的模板。
原理
Laplacian算子
采用二阶差分的原理
一维二阶差分:
f′(x)=(f(x+1)−f(x))−(f(x)−f(x−1))=f(x−1)−2f(x)+f(x+1)f'(x) = (f(x + 1) - f(x)) - (f(x) - f(x - 1)) = f(x - 1) - 2f(x) + f(x + 1)f′(x)=(f(x+1)−f(x))−(f(x)−f(x−1))=f(x−1)−2f(x)+f(x+1)
二维二阶差分:
f′(x,y)=−4f(x,y)+f(x−1,y)+f(x+1,y)+f(x,y−1)+f(x,y+1)f'(x, y) = -4f(x, y) + f(x - 1, y) + f(x + 1, y) + f(x, y - 1) + f(x, y + 1)f′(x,y)=−4f(x,y)+f(x−1,y)+f(x+1,y)+f(x,y−1)+f(x,y+1)
离散laplacian算子模板:
[0101−41010]\begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{bmatrix}⎣⎡0101−41010⎦⎤
考虑两个斜对角的扩展模板
[1111−81111]\begin{bmatrix} 1 & 1 & 1 \\ 1 & -8 & 1 \\ 1 & 1 & 1 \end{bmatrix}⎣⎡1111−81111⎦⎤
优缺点
优点:
具有各方向同性的特点,能够对任意方向的边缘进行提取,具有无方向性的优点,因此使用Laplacian算子提取边缘不需要分别检测X方向的边缘和Y方向的边缘,只需要一次边缘检测即可
缺点:
由于其二阶导数边缘算子的本质,使得其对噪声较为敏感,使噪声能力成分得到加强,容易丢失部分边缘方向信息,造成一些不连续的检测边缘,同时抗噪声能力较差
Canny算子
简介
该算子功能比前面几种都要好,但是它实现起来较为麻烦,Canny算子
是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny算子
先利用高斯平滑滤波器来平滑图像以除去噪声,Canny分割算法
采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子
还将经过一个非极大值抑制的过程,最后Canny算子
还采用两个阈值来连接边缘。
算法步骤
step1:用高斯滤波器平滑图象;
step2:用一阶偏导的有限差分来计算梯度的幅值和方向;
step3:对梯度幅值进行非极大值抑制,仅保留局部梯度最大值
step4:用双阈值算法检测和连接边缘
优缺点
优点:
最优化思想的边缘检测算子,同时采用高斯函数对图像进行平滑处理。该方法不容易受噪声干扰,能够检测到真正的弱边缘
缺点:易使高频边缘被平滑掉,从而造成边缘丢失
图像算法八 —— 多种边缘检测算法(Sobel算子 Isotropic Sobel算子 Roberts算子 Prewitt算子 Laplacian算子 Canny算子)介绍及比较
如果觉得《图像算法八 —— 多种边缘检测算法(Sobel算子 Isotropic Sobel算子 Roberts算子》对你有帮助,请点赞、收藏,并留下你的观点哦!