有谁知道它是如何工作的以及如何使用 OpenCV 来做到这一点?可以使用 OpenCV 计算拉普拉斯算子,但结果不是我所期望的。我的意思是我希望图像在背景区域的对比度大致恒定,但它是黑色的,边缘是白色的。即使经过高斯滤波,也有很多噪音。我使用高斯滤波器过滤图像,然后应用拉普拉斯。我认为我想要的是以不同的方式完成的。
问问题
16725 次
1 回答
19
高斯拉普拉斯算子是一种边缘检测滤波器;在恒定(“背景”)区域中输出为 0,在有对比度的情况下为正或负。您在背景区域看到黑色的原因是因为 OpenCV 只是为您提供原始输出;您所描述的图像类型(背景为灰色,正/负边缘为黑色或白色)是在将输出缩放到适当范围后生成的。
输出范围根据使用的实际内核而有所不同,但它总是适合在(-max, +max)
零附近的范围内,这里max
是滤波器内核的最大输出幅度;要获得“典型”输出图像,您需要将其缩放到一个(0, 1)
范围内(或者(0, 255)
如果您使用的是 8 位图像)。
cvScale
您可以使用该函数执行必要的缩放,使用1/(2*max)
缩放因子和0.5
移位。(或者对于 8 位图像,使用255/(2*max)
缩放和128
移位。)
于 2010-03-26T09:11:36.883 回答