所以我试图从图像中制作250x250的裁剪。我正在为每个维度从-125到125裁剪它,因此,它超出了界限。我想将每个超出界限的值设置为0.目前,我有以下内容:
im_cropped = im[-125:125,-125:125]
但是,由于不存在负指数,因此会输出错误。有没有办法生成250x250裁剪,所有越界像素设置为0?
答案 0 :(得分: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]
我认为这会做你想要的。它创建一个全零的数组,然后从原始图像复制中间的250x250平方。 np.s_ []技巧创建了一个切片对象,您可以将其与多个数组一起使用,而无需重写切片。