我在图像中有两个点,分别是(30,220)和(1385,1050)。我想找到通过这两点的方程式。我可以用python中的OpenCV库来划清界限。
cv.line(frame, (30, 220), (1385, 1050), (0, 255, 0), thickness=3, lineType=8)
但是,我想得到那条线的方程式。 我的问题是如何找到这条线的方程式?
PS。我的最终目标是计算点与该线之间的最小距离。
答案 0 :(得分:0)
https://en.wikipedia.org/wiki/Linear_equation
找到斜率m = (y_1 - y_2)/(x_1 - x_2)
,然后对{{1}求解方程y = mx + b
,对于b
使用y_1
,对于{{1 }}(或者您可以使用第二个坐标)。
答案 1 :(得分:0)
我在这里找到它的方式:
from numpy import ones,vstack
from numpy.linalg import lstsq
import math
points = [(30, 220),(1385, 1050)]
x_coords, y_coords = zip(*points)
A = vstack([x_coords,ones(len(x_coords))]).T
m, c = lstsq(A, y_coords)[0]
print("Line Solution is y = {m}x + {c}".format(m=m,c=c))