高斯的拉普拉斯算子:它是如何工作的? (OpenCV)

Posted

技术标签:

【中文标题】高斯的拉普拉斯算子:它是如何工作的? (OpenCV)【英文标题】:Laplacian of Gaussian: how does it work? (OpenCV) 【发布时间】:2010-03-26 07:40:32 【问题描述】:

有人知道它是如何工作的以及如何使用 OpenCV 来实现吗? 可以使用 OpenCV 计算拉普拉斯算子, 但结果不是我所期望的。 我的意思是我希望图像在背景区域的对比度大致恒定,但它是黑色的,边缘是白色的。即使经过高斯滤波,也有很多噪音。 我使用高斯滤波器过滤图像,然后应用拉普拉斯。 我认为我想要的是以不同的方式完成的。

【问题讨论】:

【参考方案1】:

高斯拉普拉斯算子是一种边缘检测滤波器;在恒定(“背景”)区域中输出为 0,在有对比度的情况下为正或负。您在背景区域看到黑色的原因是因为 OpenCV 只是为您提供原始输出;您所描述的图像类型(背景为灰色,正/负边缘为黑色或白色)是在将输出缩放到适当范围后生成的。

输出范围根据实际使用的内核而有所不同,但它总是适合零附近的(-max, +max) 范围,其中max 是滤波器内核的最大输出幅度;要获得“典型”输出图像,您需要将其缩放到 (0, 1) 范围(或 (0, 255),如果您使用的是 8 位图像)。

您可以使用cvScale 函数执行必要的缩放,1/(2*max) 作为缩放因子,0.5 移位。 (或者对于 8 位图像,使用 255/(2*max) scale 和 128 shift。)

【讨论】:

以上是关于高斯的拉普拉斯算子:它是如何工作的? (OpenCV)的主要内容,如果未能解决你的问题,请参考以下文章

特征提取算法——LoG特征提取算法

OpenCV 边缘检测之Laplance算子

OpenCV实战(13)——高通滤波器及其应用

OpenCV2马拉松第15圈——边缘检測(Laplace算子,LOG算子)

Laplacian边缘检测原理

5.1 边缘检测基础