2016-11-18 29 views
-1

シェイプ(1120,1472,4)のイメージがあります。これを(3000,3000、 4)私が書いたコードはこのようなものです。ValueError:入力配列をシェイプ(1120,1472,4)からシェイプ(3000,3000)にブロードキャストできませんでした

pad_shape = (3000, 3000) 
i = np.array('test.tif') 
result = np.zeros(pad_shape,dtype=int) 
result[:i.shape[0], :i.shape[1]] = i 
print(result) 

それはここ

ValueError: could not broadcast input array from shape (1120, 1472, 4) into shape (3000, 3000) 
+0

1120 * 1472!= 3000 * 3000、 "形状を変更する"とはどういう意味ですか?あなたの新しい配列にはもっと多くの要素がありますが、それは何でしょうか? –

+1

これは単純なタイプミスですが、pad_shapeで4を見逃しました –

答えて

0

を生成パディングするためのものである

import numpy as np 
from numpy import dtype 

pad_shape = np.array((3000, 3000, 4)) 
i = np.zeros((1120, 1472, 4), dtype=np.int) 

result = np.zeros(pad_shape, dtype=np.int) 

x, y = 10, 10 
shape = i.shape 
print shape 

rr = result[y:y+shape[0], x:x+shape[1]] 
print rr 

xとy変数回答です。パディングのために受け取ったエラー。

+0

OPは結果シェイプで4が足りなくなっていたためにエラーが発生しました。 –

+0

xとyの変数には注意が必要です。イメージの境界を越えると、そのエラーが再び発生します。 –

+0

画像の境界がOPでないことが間違いです。私のコードをテストすると、P.Camilleri –

関連する問題