我正试图将汽车灯与夜间街道的光反射区分开。例如,在这样的图像中:
我尝试更改为其他颜色空间,但是没有用。例如,cvtColor(image, gray, CV_HSV2BGR_FULL);
如下所示:
但是,在this post中它可以正常工作。 有什么办法可以对此图像进行类似的处理吗?我正在Windows上的C ++上使用 OpenCV3.1 (Python也会很棒)。
答案 0 :(得分:1)
通常,反射是光源。就光传播而言,光源是光子来自的方向。可能是源头或反射。
因此,对此问题的更好理解是,应更多地考虑要尝试检测的内容。在您引用的帖子中,问题要简单得多,因为反射并不会被吹散(达到最大亮度),而光源却已被反射(或者它们足够接近)。在您的图像中,由于捕获质量低,反射和光源的亮度相似。
要强调为什么会出现问题,您的方法是本地方法。考虑一下图像中很小的一块(例如3x3像素)。你能分辨出它是不是来自反射?
因此,更好的方法是考虑形状。您想检测似乎是圆形的,大小相同和白色的汽车灯。
我建议对blob detector之类的东西进行微调以解决您的问题,或者使用您的技术对图像进行阈值处理,然后运行CCA并measure进行组件的圆形度/大小调整。
由于照相机似乎已固定,因此您也可以考虑使用黑色在城市灯光中进行一些裁剪/填充。