![]() |
1
1
如果曲线可以是直线或圆锥曲线(双曲线、抛物线、椭圆、圆),则需要5个点。 如果这五个点是共线,你就有一条直线。(还是退化的圆锥曲线?但是,如果您希望看到直线,这应该表示一条直线。) 如果四个共线,你会得到一个退化二次曲线,由穿过四个共线点的线和穿过第五个点的任何一条不平行于第一条线的线给出。 如果三个是共线的,就有一个退化二次曲线,由穿过三个共线点的线和穿过另外两个点的线给出。(除非这两条线是平行的,在这种情况下,这不是圆锥曲线。) 如果没有三个点共线,就有一个唯一的非退化二次曲线。
要找到这个二次曲线的方程(ax^2+bxy+cy^2+dx+ey+f=0),请看
this page
,特别是
如果你有5个以上的点,选择5个点(最好没有三个共线),找到圆锥曲线,然后检查剩余的点是否在圆锥曲线上。 |
![]() |
2
1
你可以通过观察函数极值来做,但这可能不是这个问题的最佳解(我的意思是抛物线函数中的一个问题 y=sqrt(x*x-1) ) 对于直线,可以通过2个随机点计算y=ax+b,并检查其他点是否等于此条件(如果是)。这是一条直线,如果没有,你可以检查另外两个例外或从中什么都没有。也许其他人能为接下来的2个案例找到解决方案? |
![]() |
David Rose · OpenCV仅围绕大轮廓绘制矩形? 7 年前 |
|
Ghost Gaming · 如何使用ARToolKit统一识别图像 8 年前 |
![]() |
Vether · 从图像上的数据库中搜索对象 8 年前 |
![]() |
Tyler Mey · 训练Tensorflow识别特定图像 8 年前 |
![]() |
Rehaan Ahmad · 训练深度神经网络需要多少图像 8 年前 |
![]() |
Jonas · OpenCV检测模具底部 9 年前 |
![]() |
Max Bender · 使用矩比较复杂轮廓 10 年前 |