我编写了一些代码,使用 OpenCV 库来检测画在草地上的白线。我需要有人对我使用的方法发表意见(因为我确信有比我更好的方法)。此外,我得到的结果并不像我预期的那么好,因为图像的细微变化需要调整参数(并且我需要对固定参数进行操作)。
到目前为止我的方法:
- 从网络摄像头抓取图像(并明显变成灰度)
- 通过阈值过滤器运行它(使用 THRESH_TO_ZERO 模式,它会将低于阈值的所有像素归零)。
- 模糊图像
- 通过侵蚀过滤器运行它
- 通过 Canny 边缘检测器运行它
- 最后,获取这个处理过的图像并使用概率霍夫变换 HoughLinesP 找到线条
我应该更改过滤器的顺序吗?
PS 我不太关心处理能力;我在 GPU B-) 上运行 HoughLinesP
此外,这是一个示例图像:
我得到的结果:用精明 没有精明(稍微调整了参数)
任何帮助或指导将不胜感激!我只是不知道该怎么做才能改善它!
更新 根据选择的答案使用非常快速的骨架实现(带有大量模糊)后,我得到了这个: