2017-02-23 32 views
0

イメージから250x250の作物を作ろうとしています。私はそれをそれぞれの次元で-125から125まで切り取っているので、範囲外です。負のインデックスが存在しないようしかし、これはエラーを出力しPython:作物が範囲外のときに値を0に設定する

im_cropped = im[-125:125,-125:125]

:私は、私は、次のしている、現在、0に範囲外のすべての値を設定したいと思います。範囲外のピクセルをすべて0に設定して250x250のクロップを作成する方法はありますか?

+1

「im」の種類は何ですか? 'numpy'配列であれば、" -125 "は" 125要素からなる "を意味します。 – DyZ

答えて

0
import numpy as np 
cropSize = 250 
im_cropped = np.zeros_like(im) 
bidx = (np.array(im.shape)-cropSize)/2 
eidx = bidx + cropSize 
cropSlice = np.s_[bidx[0]:eidx[0],bidx[1]:eidx[1]] 
im_cropped[cropSlice] = im[cropSlice] 

これはあなたが探していることをすると思います。すべての0の配列を作成し、元の画像から250x250の正方形をコピーします。 np.s_ []トリックは、スライスを書き換えなくても複数の配列で使用できるスライスオブジェクトを作成します。

関連する問題