【问题标题】:How to create a rectangular grid with custom start point and step value如何创建具有自定义起点和步长值的矩形网格
【发布时间】:2020-12-13 08:45:41
【问题描述】:

我正在开展一个需要校准相机的项目。如您所知,需要在 3D 世界中定义平面网格点并在图像平面上找到它们的对应关系。因此,第一个相机有以下 3D_grid 点:

mport cv2 as cv 
import numpy as np

WPoints_cam1 = np.zeros((9*3,3), np.float64)
WPoints_cam1[:,:2] = np.mgrid[0:9,0:3].T.reshape(-1,2)*0.4
print(WPoints_cam1)

[[0.  0.  0. ]# world coordinate center
[0.4 0.  0. ]
[0.8 0.  0. ]
[1.2 0.  0. ]
[1.6 0.  0. ]
[2.  0.  0. ]
[2.4 0.  0. ]
[2.8 0.  0. ]
[3.2 0.  0. ]
[0.  0.4 0. ]
[0.4 0.4 0. ]
[0.8 0.4 0. ]
[1.2 0.4 0. ]
[1.6 0.4 0. ]
[2.  0.4 0. ]
[2.4 0.4 0. ]
[2.8 0.4 0. ]
[3.2 0.4 0. ]
[0.  0.8 0. ]
[0.4 0.8 0. ]
[0.8 0.8 0. ]
[1.2 0.8 0. ]
[1.6 0.8 0. ]
[2.  0.8 0. ]
[2.4 0.8 0. ]
[2.8 0.8 0. ]
[3.2 0.8 0. ]]

如上图所示,第一个网格(用于第一个相机)从定义的参考 3D_point (0,0,0) 开始,到点 (3.2,0.8 0) 结束0.4 的恒定偏移量和 9x3 尺寸

注意,所有的 Z 坐标都设置为 Z=0(Zhengyou Zhang 校准)

现在我的问题是,因为我需要定义第二个网格(用于第二个摄像头),它也指定义的 3D_坐标中心 (0,0,0),我需要定义一个从 (3.6,0,0) 开始并以 (6.8,0.8,0) 结束的网格,相同的偏移量为 0.4,尺寸为 9x3

我相信这很容易做到。但是,由于我的初学者经验水平,我无法开箱即用。

在此先感谢您的帮助和感谢。

【问题讨论】:

    标签: python numpy opencv grid camera-calibration


    【解决方案1】:

    您可以像这样缩放每一列:

    np.mgrid[0:8, 0:3].T.reshape(-1,2) * np.array([(7.8 - 3.6) / 7, 0.4]) + np.array([3.6, 0])
    

    或像这样将其组合成缩放矩阵(然后添加一个向量进行平移)

    np.mgrid[0:8, 0:3].T.reshape(-1,2) @ np.array([[(7.8 - 3.6) / 7, 0], [0, 0.4]]).T + np.array([3.6, 0])
    

    关于(7.8 - 3.6) / 7 的来源,分子应该是不言而喻的。分母是相同的,但对于您的原始尺寸。对于0:8,最大值为7,最小值为0,因此分母变为7 - 0

    【讨论】:

    • 感谢您的帮助。它实际上有效,除了步长是 0.6 应该是 0.4.@Dan
    • @k.jbaili 如果它是 8 行并且范围从 3.6 到 7.8,那么步长怎么可能是 0.4?那是不可能的。如果要设置范围,则可以设置步长或设置行数。如果您正在设置步长,那么它是微不足道的np.mgrid[3.6:77.8+0.4:0.4, 0:1.2:0.4]。但是在您的问题中,您指定了 8 行,因此步长为 0.6。
    • 很抱歉我犯了一个巨大的错误。第二个网格对于 x 维度应该是 0:9,对于 y 维度应该是 0:3,因此范围从 3.6 到 6.8。我会纠正这个问题。@Dan
    • 但这不会有什么不同——只需将我的回答中的7.8 更改为6.8 并将0:8 更改为0:9,如果您需要额外的一行。它会给你你所需要的。
    • 你在写。它没有什么不同。我应该澄清我希望步长为 0.4。谢谢,我真的很感激。@Dan
    猜你喜欢
    • 2012-09-24
    • 2017-05-06
    • 2022-11-10
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2021-09-08
    相关资源
    最近更新 更多