转于 彩泓的博客
微分算子在图像处理 中扮演重要的角色,其算法实现简单,而且边缘检测的效果又较好,因此这些基本的微分算子是学习图像处理过程中的必备方法,下面着重讨论几种常见的微分算 子。
1.Sobel
其主要用于边缘检测,在技术上它是 以离散型的差分算子,用来运算图像亮度函数的梯度的近似值,缺点是Sobel算子并没有将图像的主题与背景严格地区分开来,换言之就是Sobel算子并没 有基于图像灰度进行处理,由于Sobel算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意,算法具体实现很简单,就是3*3 的两个不同方向上的模板运算,这里不再写出。
2.Robert算子
根据任一相互垂直方向上的差分都用来估计梯 度,Robert算子采用对角方向相邻像素只差
3.Prewitt算子
该算子与Sobel算子类似,只是权值有所变化,但两者实现起来功能还是有差距的,据经验得知Sobel要比Prewitt更能准确检测图像边缘。
4.Laplacian算子
拉普拉斯算子是一种二阶微分算子,若只考虑边缘点的位置而不考虑周围的灰度差时可用该算子进行检测。对于阶跃状边缘,其二阶导数在边缘点出现零交叉,并且 边缘点两旁的像素的二阶导数异号。
5.Canny算子
该算子功能比前面几种都要好,但是它实现起来较 为麻烦,Canny算子是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny算子先利用高斯平滑滤波器来平滑图像以除去噪 声,Canny分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子还将经过一个非极大值抑制的过程,最后Canny算子 还采用两个阈值来连接边缘。
下面算法是基于的算法不可能直接运行,只是我把 Canny的具体实现步骤写了出来,若需用还要自己写。