我正在尝试生成一个坐标数组,它将位于图像上。 使用的图像是640x480像素的帧。我已经能够将我想要使用的所有x和y点组成一个数组。我试图在这些点上绘制小圆圈,以便可视化和以后使用,所以我试图将坐标转换成可以输入OpenCV circle函数的形式。以下是我到目前为止得到的:
Ypts = np.arange(5, 480, 5)
Xpts = np.arange(5, 640, 5)
我试过用
[pts]= np.vstack([Xpts, Ypts]).T
以及
coordinate = []
for x in range(Xpts.size):
for y in range(Ypts.size):
coordinate.append((x, y))
如果没有成功,我得到的坐标输出是[0, 0], [0, 1], [0, 2], ...
,而不是与Xpts
和Ypts
值相关的点。
在较小的范围内,这是x和y阵列的示例:
Xpts = [5, 10, 15, 20, 25, 30, 35]
Ypts = [5, 10, 15]
我想得到的答案是:
Points = [[5, 5],
[5, 10],
[5, 15],
[10, 5],
[10, 10],
[10, 15],
[15, 5],
[15, 10],
......,
[35, 15]]
您可以使用numpy的mgrid生成所有可能的组合:
人们已经建议使用numpy.mgrid和itertools。使用它们。
然而,为了教育起见,Python为我们提供了一个强大的概念,称为“列表理解”。可以通过运行以下命令获得笛卡尔积:
如果不需要元组列表,请将
(a,b)
更改为[a,b]
。您可以使用
itertools.product
,它基本上将返回所提供列表的所有可能组合。有关示例,请参见以下代码:这将返回以下信息:
相关问题 更多 >
编程相关推荐