Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python齐次到非齐次绘图线_Python_Opencv_Geometry - Fatal编程技术网

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
然后在这些点之间画一条线