我有两张在不同光线条件下拍摄的同一条道路的照片,如下所示
第一张是晚上拍的,第二张是白天拍的。我必须编写一个通用代码来确定两个灯光场景中道路的白色车道标记。我尝试过诸如 sobel 边缘检测、连接组件之类的方法,并且还尝试通过对白色像素值应用条件来找到白色车道标记。但是适用于第一张图片的算法不适用于第二张图片。请指导我
我有两张在不同光线条件下拍摄的同一条道路的照片,如下所示
第一张是晚上拍的,第二张是白天拍的。我必须编写一个通用代码来确定两个灯光场景中道路的白色车道标记。我尝试过诸如 sobel 边缘检测、连接组件之类的方法,并且还尝试通过对白色像素值应用条件来找到白色车道标记。但是适用于第一张图片的算法不适用于第二张图片。请指导我
这肯定会失败,因为可以在许多不同的条件下拍摄这些照片,但这里有一些适用于这些照片的步骤。它们与其他技术一起使用可能更有用,这些技术完全取决于您正在执行的任务。
从比平常更厚的形态梯度开始(例如,使用 5x5 平面结构元素)使用max(R, G, B)
(这相当于将您的输入转换为 HSB 颜色空间并在B
那里选择通道)。这假设标记是白色的,就像问题的标题所暗示的那样,这一步很可能会突出显示。
以低阈值对当前图像进行二值化,因为标记在输入中并不那么重要,然后是形态关闭和细化。在这里,这种闭合操作起到了廉价元件闭合以及每个元件填充孔的作用。细化将有助于区分你可能追求的线条和你肯定没有的线条。
现在您可以测量组件以尝试选择您想要的组件。像像素数和涉及凸包的测量很有趣。从后者您可以提取平均卡尺直径,对于线段,这将给出更接近像素数的值。
以下是个人结果以及最终结果:
错误的线段可以通过考虑它的“非白色”程度以及使用更多针对问题的信息(例如这些线段的预期角度)来消除。
车道检测是一个经过充分研究的主题。我会给你一些论文的名字开始,但这绝不是一个完整的列表。你应该做更多的文献调查。如果你是为课程项目做这件事,那么只需了解核心思想并尝试实施,否则,你必须完全理解论文。
也可以使用 3 的代码,但除非并且直到您理解没有 practcig 文件的代码。