我想知道是否有人试图将一个固定大小的矩形拟合到给定的一组点。
想象一下,你有一组未分类的点,并不总是显示一个矩形的完整外壳。下图应该证明问题:
点数可能会有所不同,可能会丢失点数。 我想找到一个最小二乘法来找到具有固定边长的最佳拟合矩形。
也许我可以先找回回归线,但接缝可以采用不同的方式。
我很欣赏任何暗示。
答案 0 :(得分:0)
只是解决方案的大纲:
pnt2line
之类的距离函数
distance[i]
作为这四个距离的最小值distance
中使用此scipy.optimize.curve_fit
数组来查找最适合的参数答案 1 :(得分:0)
如果有异常值,RANSAC可以成为你的好朋友。要进行拟合,需要从不同侧面取三个点。因此,只需选择三个随机点并假设其中两个属于一侧而另一个属于正交侧。找到姿势参数没什么大不了的。您可以根据@VBB描述的距离函数计算拟合误差(对于每个点,距离一侧最短距离)。
根据您的喜好,您可以使用相同的三个点,任意一个侧面任务,或尝试不同的任务并保持最佳状态。
对于内部的最终拟合,你可以使用技巧。
将每个内部分配到最近的一侧;
将每一侧的星团集中在各自的质心上;
将每一侧的星团旋转90°;
这会产生一个具有单一方向的群集;执行普通的线条拟合以获得该方向。
答案 2 :(得分:0)
定义位置P处的固定尺寸矩形R(P)与点Q之间的距离d(R(P),Q),该点Q是连接两者的最短直线的长度。这很容易定义为一个由案例推理的函数。
现在只需使用某种形式的梯度下降来找到最佳P *,使得点集中Q的总和(R(P *),Q)^ 2最小化。