OpenCV 和 Python 中线条的反射
Reflection of Lines in OpenCV and Python
我正在尝试在 OpenCV 中计算一条线在表面上的反射。
我使用的是射弹即时跟踪,它正在绘制第 2 条线和一个边框。
我“只是”想画一条反弹角线,正如您在我的绘图中看到的那样。
我得到了一个计算三个给定点的角度的代码,但在我的示例中,第 2 行不是静态的。它会移动,因为它被移动的射弹吸引。所以要计算这个,我需要边界和 2 号线的交点。我有点费力才能得到它..
有解决这个问题的简单方法吗?
谢谢。
来自您的评论:
弹丸坐标(P0)
(center_x, center_y)
撞击点(P1)
(predicted2[0], predicted2[1])
边界极值(A,B)
(Ax, Ay), (Bx, By)
我假设P1属于段AB。
你应该把P0投影到经过A、B的直线上。称这个点为PP。然后你应该计算
arctan(distance(PP,P1)/distance(P0,PP))
这等于 alpha,您可以使用它来计算反射段,具体取决于反射段的长度。
我建议使用 shapely 库:
我正在尝试在 OpenCV 中计算一条线在表面上的反射。
我使用的是射弹即时跟踪,它正在绘制第 2 条线和一个边框。
我“只是”想画一条反弹角线,正如您在我的绘图中看到的那样。
我得到了一个计算三个给定点的角度的代码,但在我的示例中,第 2 行不是静态的。它会移动,因为它被移动的射弹吸引。所以要计算这个,我需要边界和 2 号线的交点。我有点费力才能得到它..
有解决这个问题的简单方法吗?
谢谢。
来自您的评论:
弹丸坐标(P0)
(center_x, center_y)
撞击点(P1)
(predicted2[0], predicted2[1])
边界极值(A,B)
(Ax, Ay), (Bx, By)
我假设P1属于段AB。
你应该把P0投影到经过A、B的直线上。称这个点为PP。然后你应该计算
arctan(distance(PP,P1)/distance(P0,PP))
这等于 alpha,您可以使用它来计算反射段,具体取决于反射段的长度。
我建议使用 shapely 库: