检测图像中行的一种好方法?
我写了一些使用OpenCV库检测草地上的白线的代码。 我需要某人对我使用的方法的看法(因为我确定有比我更好的方法)。 此外,我得到的结果不如我预期的那样好,因为图像中的细微变化需要调整参数(并且我需要在固定参数上操作)。
我的方法到目前为止:
我应该改变过滤器的顺序吗?
PS我并不太在意处理能力, 我正在GPU上运行HoughLinesP B-)
此外,这里是一个示例图像:
我得到的结果是:canny 没有canny(稍微调整参数)
任何帮助或指导,将不胜感激! 我只是不知道该怎么做来改善它!
更新按照选定的答案使用一个非常快速的框架实现(模糊的吨)后,我得到了这个:
我会尝试使用图像的骨架表示。 你的canny的问题在于,它基本上由于线的宽度而导致两条线。
然后我会对它应用霍夫变换。
一种可能的解决方案是从Canny边缘检测中获取所有边缘点,并在这些点上使用线性最小方差(可能为迭代)拟合一条线。 这样你总是得到一条“最适合”边缘点的线条。 这种方法几乎没有涉及参数化。
我使用Canny进行室内图像处理,但对于户外,我发现更适合拉普拉斯滤波器和Sobel滤波器,而不是应用概率霍夫线变换(PHT)。
如果你想加粗你的线条,你应该在拉普拉斯和最后的PHT之后尝试Sobel算子。 如果你的图像太黑,可能会变得更糟。
链接地址: http://www.djcxy.com/p/79631.html上一篇: A good approach for detecting lines in an image?
下一篇: Calculating distance to plane and square's corners from image