假设此图片中有一组线段,例如红线(或绿线)我想知道如何只用一个最接近它们的线段来替换它们。或者,也许您可以建议搜索什么,因为这可能是统计中的常见问题。
问题背景:这实际上来自使用OpenCV的概率霍夫变换。我想检测一张纸的角落。当我将其应用于图像时,我会在边缘上得到一组要转换为单行连续段的线。
我想到的一种方法是从直线中获得两点,然后使用直线回归获得直线方程。一旦有了,我应该将其切成段。
[假设这张图片中有一组线段,例如红线(或绿线),我想知道如何用一个最接近它们的线段来替换它们。也许...
这是一个潜在的解决方案:
这是一个很好的问题。解决这个问题的正确方法是沿每个线段积分误差。代替简单的术语(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]
。我想您会发现您可以精确计算积分,因此您将获得仅涉及端点的平方误差总和的项。我省略了一些细节,但我认为剩下的就足够了。编辑:错误项应平方;我已经相应调整了公式。