2016-07-20 5 views
0

私は、ピクセルの座標が空間充填曲線に従って1D配列に平坦化されたサイズM * Nの画像を持っています(つまり、リシェイプを使用できる古典的なラスタライズではありません)。Pythonでフラットインデックスから変形する

私は1D配列(平坦化されたイメージ)を処理し、それをM * N配列(初期サイズ)に再形成したいと考えています。

これまでのところ、私はforループでこれを行っている:

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

xとyは、xとyピクセルであることは、私のパスのスキャンに応じて調整します。

しかし、私はコードの独自の行でこれを行う方法が不思議です。 xyは寸法1と長nのnumpyの配列である場合

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

答えて

1

、及びimg_flatも長nimg_resを有するよう `こと2 (h, w)寸法のnumpyの配列である:

+0

はい、私の2番目の解決策よりも簡単です!私はこのヒントを常に忘れています! – floflo29

0

実際に、それは簡単でした時間*その後、W = N:

img_res[x, y] = img_flat 

は十分である

関連する問題