Python Numpy在一定范围内生成X和Y值的坐标

我正在尝试生成一个位于图像上的坐标数组.
使用的图像是640×480像素的帧.我已经能够制作一个我希望使用的所有x和y点的数组.我试图在每个点上绘制小圆圈只是为了可视化和以后使用所以我试图将坐标变成可以输入OpenCV圆函数的形式.以下是我到目前为止所得到的:

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]]
最佳答案
您可以使用itertools.product,它基本上会返回所提供列表的所有可能组合.请参阅此代码以获取示例:

import numpy as np
import itertools

Xpts=[5, 10, 15, 20, 25, 30, 35]
Ypts=[5, 10, 15]

Points = np.array(list(itertools.product(Xpts, Ypts)))

这将返回以下内容:

array([[ 5,  5],
       [ 5, 10],
       [ 5, 15],
       [10,  5],
       [10, 10],
       [10, 15],
       [15,  5],
       [15, 10],
       [15, 15],
       [20,  5],
       [20, 10],
       [20, 15],
       [25,  5],
       [25, 10],
       [25, 15],
       [30,  5],
       [30, 10],
       [30, 15],
       [35,  5],
       [35, 10],
       [35, 15]])

转载注明原文:Python Numpy在一定范围内生成X和Y值的坐标 - 代码日志