高斯的拉普拉斯算子:它是如何工作的? (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)的主要内容,如果未能解决你的问题,请参考以下文章