有人知道它是如何工作的以及如何使用 OpenCV 来实现吗? 可以使用 OpenCV 计算拉普拉斯算子, 但结果不是我所期望的。 我的意思是我希望图像在背景区域的对比度大致恒定,但它是黑色的,边缘是白色的。即使在高斯滤波器之后,也有很多噪音。 我使用高斯过滤器过滤图像,然后应用拉普拉斯。 我认为我想要的是通过不同的方式完成的。
最佳答案
高斯拉普拉斯算子是一种边缘检测滤波器;在恒定(“背景”)区域中输出为 0,在有对比度的区域中输出为正或负。你在背景区域看到黑色的原因是因为 OpenCV 只是给你原始输出;您所描述的图像类型(背景为灰色,正/负边缘为黑色或白色)是在将输出缩放到适当范围后生成的。
输出范围根据实际使用的内核而变化,但它总是适合 (-max, +max)
范围在零附近,其中 max
是滤波器内核的最大输出幅度;要获得“典型”输出图像,您需要将其缩放到 (0, 1)
范围(或 (0, 255)
如果您使用的是 8 位图片)。
您可以使用 cvScale
函数执行必要的缩放,使用 1/(2*max)
作为比例因子和 0.5
偏移. (或者对于 8 位图像,使用 255/(2*max)
比例和 128
偏移。)
关于image-processing - 高斯拉普拉斯算子 : how does it work? (OpenCV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521704/