关于检测edge的算法有很多, 感觉有些算法像前面我一直截取的PPT里面说的一样, 有些过时和不太好用.
接下来再列举两个, 是我在查论文时常看见的两个算法
与前面讲的sobel一阶算子相对应, 拉普拉斯算子是个二阶算子, 就像一阶算子用大小来判断是否为边缘, 二阶算子用过零点表示是否为edge(我是这么理解, 过零点也就是拐点, 也就是原图像的尖点(即edge), 或者说是一阶导的最大值最小值点), 但是它对噪声很敏感(就像一阶导不可导点, 噪声可能会改变原图像在该点处的凹凸性,个人理解, 仅供参考).
当然, 拉普拉斯卷积核还有其他的类型.
在opencv中的使用
void Laplacian( InputArray src, OutputArray dst, int ddepth, int ksize=1, double scale=1, doubledelta=0, int borderType=BORDER_DEFAULT )
这里就不写程序了, 与用sobel类似
怎样寻找过零点(zero crossing)?
视频截图来源 http://crcv.ucf.edu/videos/lectures/2012.php