将一组线段近似为一条最佳拟合直线

问题描述 投票:5回答:2

假设此图片中有一组线段,例如红线(或绿线)我想知道如何只用一个最接近它们的线段来替换它们。或者,也许您可​​以建议搜索什么,因为这可能是统计中的常见问题。

问题背景:这实际上来自使用OpenCV的概率霍夫变换。我想检测一张纸的角落。当我将其应用于图像时,我会在边缘上得到一组要转换为单行连续段的线。

我想到的一种方法是从直线中获得两点,然后使用直线回归获得直线方程。一旦有了,我应该将其切成段。

[假设这张图片中有一组线段,例如红线(或绿线),我想知道如何用一个最接近它们的线段来替换它们。也许...

algorithm opencv image-processing statistics linear-regression
2个回答
1
投票

这是一个潜在的解决方案:


0
投票

这是一个很好的问题。解决这个问题的正确方法是沿每个线段积分误差。代替简单的术语(y[i] - y_hat)^2(其中y_hat是回归线的预测值),您应该使用integral((y[i](t) - y_hat)^2, t, 0, 1),其中y[i](t)是线段的参数化,y[i](t) = t * y[i, 1] + (1 - t)*y[i, 0](表示i的端点)第[]段作为y[i, 0]y[i, 1]。我想您会发现您可以精确计算积分,因此您将获得仅涉及端点的平方误差总和的项。我省略了一些细节,但我认为剩下的就足够了。编辑:错误项应平方;我已经相应调整了公式。

© www.soinside.com 2019 - 2024. All rights reserved.