如何区分光源和光反射?

时间:2019-06-18 16:45:45

标签: image opencv image-processing

我正试图将汽车灯与夜间街道的光反射区分开。例如,在这样的图像中:

enter image description here

我尝试更改为其他颜色空间,但是没有用。例如,cvtColor(image, gray, CV_HSV2BGR_FULL);如下所示:

enter image description here

但是,在this post中它可以正常工作。 有什么办法可以对此图像进行类似的处理吗?我正在Windows上的C ++上使用 OpenCV3.1 (Python也会很棒)。

1 个答案:

答案 0 :(得分:1)

通常,反射是光源。就光传播而言,光源是光子来自的方向。可能是源头或反射。

因此,对此问题的更好理解是,应更多地考虑要尝试检测的内容。在您引用的帖子中,问题要简单得多,因为反射并不会被吹散(达到最大亮度),而光源却已被反射(或者它们足够接近)。在您的图像中,由于捕获质量低,反射和光源的亮度相似。

要强调为什么会出现问题,您的方法是本地方法。考虑一下图像中很小的一块(例如3x3像素)。你能分辨出它是不是来自反射?

因此,更好的方法是考虑形状。您想检测似乎是圆形的,大小相同和白色的汽车灯。

我建议对blob detector之类的东西进行微调以解决您的问题,或者使用您的技术对图像进行阈值处理,然后运行CCA并measure进行组件的圆形度/大小调整。

由于照相机似乎已固定,因此您也可以考虑使用黑色在城市灯光中进行一些裁剪/填充。