我正在开发一个在夜景中检测车辆前灯的项目。 首先,我正在进行MATLAB演示。 我的检测方法是使用高斯差异(DoG)进行边缘检测:我将图像与具有2个差异sigma的高斯模糊进行卷积,然后减去2个经过滤波的图像以找到边缘。 我的结果如下所示:
现在,我的问题是在MATLAB中找到一种方法来使圆形边缘(例如汽车的前灯甚至是路灯)围成圆形,而忽略其他边缘。 如果你们有任何建议,请告诉我。
我认为您可以使用稍有不同的方法来获得更好的细分。
灯光和背景之间已经形成了强烈的对比度,因此您可以利用此优势使用简单的阈值将亮点进行分割,然后可以应用一些斑点检测来滤除任何小的斑点(例如路灯)。 然后,您可以从那里进行轮廓检测,霍夫圆等,直到找到感兴趣的对象。
例如,我拍摄了您的源图像并执行以下操作:
转换为8位灰度
应用高斯模糊
阈
这是源图像的一部分:
这是阈值覆盖:
也许这种方法值得进一步探讨。 请发表评论,让我知道您的想法。
1.我不能忽略这些小斑点,因为前灯可能很远,路灯可能更大。我打算将图片分为两部分:上部和下部分别包含路灯和前灯,而我只分析下部。您如何看待我的解决方案? 2.您的阈值方法是否类似于转换为二进制图像?实际上,我是不允许这样做的。3.您能更具体地告诉我有关在阈值步进之后如何对亮对象进行环绕吗?可以应用于DoG吗?如果您不介意,可以将您的验证码发送给我吗?非常感谢
@ user3049831划分图片很好,您可以始终分析最大的"最低"斑点,并假设汽车下方没有较小的灯光。"实际上不允许我这样做"是什么意思?您是在解决一个真正的问题,还是这种带有约束的作业?
我同意罗兰(Rowland)的意见,实际上我会做类似的事情。将图片分为两部分将有助于加快处理速度,所以继续吧。关于在阈值步骤之后环绕明亮的物体,我认为红色斑点是通过称为遮罩的过程完成的,请仔细阅读,非常简单。
它基本上将除ROI(大灯)之外的所有东西都归零,然后您可以为其设置颜色。希望我能帮助(:
@rockinfresh,您的建议非常有帮助。我会尝试测试
@RogerRowland是的,这确实是一个"有约束的任务",这让我很烦。无论如何,我非常感谢您的帮助。
确保使用大灯上的其他信息,即SYMMETRY。假设汽车正朝着摄像头行驶,则作为可疑头灯的Blob根据汽车的位置应具有(显然有些误差,而且可能不完全是错误)对称的Blob。顺便说一句,您应该只检查形状的对称性,而不要检查强度,因为一个前照灯可能与前照灯不同。