algorithm - 从图像估计曲率

标签 algorithm computer-vision estimation least-squares

我有这样的图片:

enter image description here enter image description here enter image description here enter image description here

在这张图片中,红线是我想从图片中得到的。原图没有那条红线,只有那条绿路。

我想要的是以方程系数的形式估计图像的曲线:A x^2 + B x + C = 0。图像中可能存在噪声(如上图所示,边缘上有黑洞)。

我曾尝试使用最小二乘法 (LSM) 来解决这个问题,但这种方法存在两个问题:

  1. 即使在 PC 上,该方法也太慢了,因为点数很高。

  2. 在以下情况下道路太宽:

左侧图像上的曲线被正确识别,但右侧图像上的曲线被错误识别。我想原因是路太宽太短了。 enter image

作为这两种情况的解决方案,我想让道路变窄。在理想情况下,它是上图中的红线。或者我想使用 LSM 进行线检测 (A x + B = 0) 以优化处理时间。

我试过腐 eclipse 图像 - 这是错误的方法。 骨架也不是正确的解决方案。

关于如何实现预期结果(缩小道路)的任何想法? 或者对解决此问题的另一种方法有任何想法吗?

最佳答案

如果您始终可以依赖一个轴作为适合的因变量(看起来它应该是上述“正确”示例中的 x 轴,尽管您的右下角故障似乎使用 y),那么你可以这样做:

  • 对于每个扫描线y,选择非黑色像素的中值x
  • 如果没有非黑色像素(或小于某个选定的噪声阈值),则跳过该行

您现在有一个 (x,y) 对列表,最多与扫描线一样多。这些代表对每个级别道路中点的猜测。用最小二乘法对这些点拟合一个低阶多项式 x=f(y)(我会选择线性或三次,但如果你愿意,你可以做二次)。

对于您所显示的各种图像,细节非常粗糙,因此您可能只需要一部分点就可以处理。但即使没有它,处理成本也应该是合理的,除非您使用非常受限的硬件。

如果左右路径经常出现,那么您可以同时拟合两种方式,然后应用某种拟合优度标准。如果路径经常 self 循环,那么这种中点方法不会给你一个好的答案,但无论如何你都会在拟合上失败。

关于algorithm - 从图像估计曲率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259300/

相关文章:

OpenCV Haartraining 不会永远完成

algorithm - 轨道方程和运行它们所需的功率

agile - 如何更改为在 Scrum 中使用 Story Points 进行估算

algorithm - 'n' 人使用 Go 的桥梁和 torch 问题

algorithm - 图 DFS 检测周期 - (假设)反例

algorithm - 问题 : Bob's Sale

algorithm - 我可以为图形考虑哪些聚类算法?

python - Mediapipe,将地标分配给顶点?

python - 如何比较两个彩色图像之间的相似性?

ruby-on-rails - 如何估算 Rails 应用程序开发成本?