边缘检测:可以用导数来检测
1.canny算子:采用一阶偏导的有限差分来计算梯度幅值和方向,方向导数达到局部最大则为边缘候选点;
创新点在于试图将边缘像素拼接成轮廓,轮廓的形成即使用滞后性阈值:通过高低两个阈值的设定,高阈值用来控制强边缘的初始段,低阈值用来边缘连接。
高阈值求的边缘一般断断续续,断开的地方如果低阈值求的边缘存在,就用低阈值的边缘接上去,目的让边缘尽量都连在一起。两阈值间的点为疑似边缘点,根据 连 通性确定,如果疑似点的邻接像素中有边缘点则认为是边缘点。
2.sobel算子:在某个点使用sobel算子,产生梯度矢量(可用来边缘检测)或法矢量(可用来计算法线)。计算时先在x,y方向求导数,即分别和核进行卷积,
Gx = |(P3+2P6+P9)-(P1+2P4+P7)|
Gy = |(P1+2P2+P3) - (P7+2P8+P9)|
假如中间为边缘,那么边缘两侧的亮度差距就会变大,乘以符号相反的系数,会使得最终的结果达到很大的值,在图像上来看就是白色;而不是边缘的区域,左右两 边或者上下两边就会抵消,在图像上看就是黑色。
3.scharr滤波器:对小的核来说,sobel算子的精度低,例如3*3的核,可以用scharr代替sobel,速度一样,精度高。
4.拉普拉斯算子:利用sobel算子算出图像上x,y方向的导数,带入到公式中。拉普拉斯求2阶导,边缘位于拉普拉斯值为0的地方,2阶导数为0,即一阶导为极大或极小值。