zl程序教程

您现在的位置是:首页 >  后端

当前栏目

在OpenCV里实现LoG的Marr-Hildreth

Opencvlog 实现
2023-09-14 09:10:33 时间

在前面学习了LoG和DoG,但是边缘还是比较大,有没有方法可以像Canny一样可以实现边缘细化呢?这是有的,叫做Marr-Hildreth边缘算法。

20世纪70年代末,David Marr 尝试将生物视觉融合进一个可以用于机器视觉的模型。Marr描述道“早期视觉处理的目标是对图像构建一个原始但丰富的描述,用于确定可视表面的反射系统和光强度,以及它们相对于观察者的方向的距离”[1]。他把最低级别的描述称为原始要素图,其中最主要的组成部分是边缘。

根据[1]中,我们可以将一个边缘检测算法描述为:

1) 通过一个二维高斯函数对图像I进行卷积运算;

2) 计算卷积图像的Lapace算子,称为 L ; 

3)寻找边缘像素:在L中存在零交叉的像素。通过高斯函数计算出来的卷积具有多种不同的标准偏差,而这些标准偏差可以结合为一个单独的边缘图像。

我们可以通过差分进行计算,面这个例子中顺序并没有关系,因些可以通过分析法计算高斯拉普拉斯算子(Laplacian of the Gaussina,LoG),并且采样这个函数。创建一个卷积掩模;可以对图像应用这个卷积掩模产生同样的结果。

可以用下面的例子来演示:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.