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

时间:2010-03-26 07:40:32

标签: image-processing opencv filtering background-subtraction

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

1 个答案:

答案 0 :(得分:16)

高斯拉普拉斯算子是边缘检测滤波器;常量('背景')区域的输出为0,对比区域的输出为正或负。您在背景区域看到黑色的原因是因为OpenCV只是为您提供原始输出;在将输出缩放到适当的范围后,会生成您正在描述的图像类型(背景为灰色,正/负边缘为黑色或白色)。

输出范围取决于所使用的实际内核,但它始终适合于零(-max, +max)范围,其中max是滤波器内核的最大输出幅度;要获得“典型”输出图像,您需要将其缩放到(0, 1)范围(如果您使用的是8位图像,则为(0, 255))。

您可以使用cvScale功能执行必要的缩放,1/(2*max)作为缩放系数和0.5移位。 (或者对于8位图像,使用255/(2*max)比例和128移位。)