边缘算子
参考链接:https://blog.csdn.net/yato0514/article/details/82051790
图像方面的特征一般是从边缘开始,然后不断向上构成更高层次的特征描述,边缘和边界是不同的,边缘是指图像中的像素值突变的地方,边界指实际场景中物体间的边界
常用的一阶算子:sobel,roberts,prewitt,canny
常用的二阶算子:laplacian
sobel
sobel是离散型的差分算子,用来运算亮度函数的梯度近似值,是典型的基于一阶导数的边缘检测算子。因为引入了类似局部平均运算,因此对噪声有平滑作用,能较好的消除噪声,sobel对像素位置的影响进行了加权,与Prewitt算子和Roberts算子相比效果更好。
sobel算子包括两个3*3矩阵,分别用来检测横向和纵向的亮度差分近似值,常用模板:
梯度大小和方向theta计算公式
如果theta等于0,说明该处有纵向边缘,左方较右方暗。
sobel的缺点:没有将图像和背景严格分开
sobel的另一种形式,加权平均算子,权值与邻点和中心点的距离成反比,沿不同方向检测边缘时梯度一致(各向同性),算子模板:
Roberts
最简单的一种算子,利用局部差分算子寻找边缘,采用对角线方向相邻两像素之差近似梯度幅值检测边缘,定位精度高,但对噪声敏感。常用模板:
做横向,右纵向
Prewitt
prewitt利用像素点上下、左右邻点的灰度差,在边缘处达到极值,去掉部分为边缘,对噪声有一定的平滑作用,它的定位精度不如Roberts,实现方法与Sobel类似,但实现的功能差距很大,对边缘的检测精度不如Sobel。
Canny
Canny算子具有滤波、增强、检测多个阶段,步骤:
- 用高斯滤波平滑图像(灰度图)
- 用一阶偏导的有限差分来计算梯度的幅值和方向
- 对梯度幅值进行非极大值抑制
- 用双阈值算法检测和链接边缘
Laplacian
laplace算子是一种各向同性算子,是二阶微分算子,在只关心边缘的位置而不考虑周围像素的灰度值时比较合适,laplace算子对鼓励像素的响应比对边缘的响应要更强烈,因此只适合无噪声的图像,如果有噪声还想用拉普拉斯算子,就要先进行低通滤波预处理。拉普拉斯算子不能检测边缘的方向。laplace在分割中的作用:
- 利用它的零交叉性质进行边缘定位
- 确定一个像素是在一条边缘暗的一面还是亮的一面。
对比