Python同质到非同质图lin

2024-09-27 23:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现了一个article,是关于外极几何的。你知道吗

我计算了基本矩阵。现在我正试图找到一条线,在这条线上有一个对应的点,如文章所述:

s

我计算了齐次坐标系中的直线。我怎样才能像示例中那样将这条线绘制到图片中?我想把这条线从均匀坐标转换成非均匀坐标。我认为这可以通过将xy除以z来实现

例如,均质:

x=0.0295
y=0.9996
z=-265.1531

不均匀的:

x=0.0295/-265.1531
y=0.9996/-265.1531

所以:

x=-0.0001112564778612809
y=0.0037698974667842843

我觉得这些数字不对,因为它们太小了。这是正确的方法吗? 我怎样才能把我的结果绘制成一幅图像呢?你知道吗


Tags: 方法示例article文章绘制图片矩阵数字
1条回答
网友
1楼 · 发布于 2024-09-27 23:16:08

您拥有的xyz是幻灯片中“图像中的线”公式下出现的“极线”方程的参数,但分别标记为abc,即:

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

然后在这些点之间画一条线

相关问题 更多 >

    热门问题