有人知道它是如何工作的以及如何使用OpenCV来做到这一点? 拉普拉斯算子可以使用OpenCV计算, 但结果不是我的预期。 我的意思是我希望图像在背景区域具有近似恒定的对比度,但它是黑色的,边缘是白色的。即使经过高斯滤波器,也会产生很多噪音。 我使用高斯滤波器过滤图像然后应用拉普拉斯。 我认为我想要的是以不同的方式完成的。
答案 0 :(得分:16)
高斯拉普拉斯算子是边缘检测滤波器;常量('背景')区域的输出为0,对比区域的输出为正或负。您在背景区域看到黑色的原因是因为OpenCV只是为您提供原始输出;在将输出缩放到适当的范围后,会生成您正在描述的图像类型(背景为灰色,正/负边缘为黑色或白色)。
输出范围取决于所使用的实际内核,但它始终适合于零(-max, +max)
范围,其中max
是滤波器内核的最大输出幅度;要获得“典型”输出图像,您需要将其缩放到(0, 1)
范围(如果您使用的是8位图像,则为(0, 255)
)。
您可以使用cvScale
功能执行必要的缩放,1/(2*max)
作为缩放系数和0.5
移位。 (或者对于8位图像,使用255/(2*max)
比例和128
移位。)