重塑Python中的扁平索引

时间:2016-07-20 12:52:54

标签: python space-filling-curve

我有一个大小为M * N的图像,其像素坐标根据空间填充曲线被平展为1D阵列(即不是我可以使用重塑的经典光栅化)。

因此,我处理了我的一维数组(平面图像),然后我想将其重新整形为M * N数组(初始大小)。

到目前为止,我已经使用for循环完成了这项工作:

for i in range(img_flat.size):
    img_res[x[i], y[i]] = img_flat[i]

x和y是根据我的路径扫描的x和y像素坐标。

但是,我想知道如何在一个独特的代码行中执行此操作。

2 个答案:

答案 0 :(得分:1)

如果xy是维度为1且长度为n的numpy数组,而img_flat的长度为n img_res则为维度2 (h, w)的numpy数组,使得`h * w = n,然后:

img_res[x, y] = img_flat

应该足够了

答案 1 :(得分:0)

事实上,这很简单:

vec = np.arange(0, seg.size, dtype=np.uint)
img_res[x[vec], y[vec]] = seg[vec]