我有一个大小为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像素坐标。
但是,我想知道如何在一个独特的代码行中执行此操作。
答案 0 :(得分:1)
如果x
和y
是维度为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]