Python齐次到非齐次绘图线
我找到了一个关于极线几何的 我计算了基本矩阵。现在,我正试图找到一条线,在这条线上有一个对应的点,如本文所述: 我计算了齐次坐标系下的直线。我怎样才能像示例中那样将这条线绘制到图片中?我想把线从齐次坐标变换成非齐次坐标。我认为这可以通过将Python齐次到非齐次绘图线,python,opencv,geometry,Python,Opencv,Geometry,我找到了一个关于极线几何的 我计算了基本矩阵。现在,我正试图找到一条线,在这条线上有一个对应的点,如本文所述: 我计算了齐次坐标系下的直线。我怎样才能像示例中那样将这条线绘制到图片中?我想把线从齐次坐标变换成非齐次坐标。我认为这可以通过将x和y除以z 例如,均质: x=0.0295 y=0.9996 z=-265.1531 x=0.0295/-265.1531 y=0.9996/-265.1531 不均匀的: x=0.0295 y=0.9996 z=-265.1531 x=0.0295/
x
和y
除以z
例如,均质:
x=0.0295
y=0.9996
z=-265.1531
x=0.0295/-265.1531
y=0.9996/-265.1531
不均匀的:
x=0.0295
y=0.9996
z=-265.1531
x=0.0295/-265.1531
y=0.9996/-265.1531
因此:
这些数字对我来说似乎是错误的,因为它们太小了。这是正确的方法吗?
如何将结果绘制成图像?您拥有的
x
、y
和z
是幻灯片中“图像中的线”公式下出现的“极线”方程的参数,但分别标记为a
、b
和c
,即:
au+bv+c=0
解决这个问题的方法是在线上的点。e、 g.在Python中,我将a
定义为图片x轴上的一些点,并求解b
:
import numpy as np
F = np.array([
[-0.00310695, -0.0025646, 2.96584],
[-0.028094, -0.00771621, 56.3813],
[13.1905, -29.2007, -9999.79],
])
p_l = np.array([
[343.53],
[221.70],
[ 1.0],
])
lt = F @ p_l
# if you want to normalise
lt /= np.sqrt(sum(lt[:2] ** 2))
# should give your values [0.0295, 0.9996, -265.2]
print(lt)
a, b, c = lt.ravel()
x = np.array([0, 400])
y = -(x*a + c) / b
然后在这些点之间画一条线