Python:当作物超出范围时,将值设置为0
所以我试着从一张图像中裁剪出一个250x250的图像。我将每个维度从-125裁剪到125,因此,它超出了范围。我想将所有超出范围的值都设置为0。目前,我有以下几点:Python:当作物超出范围时,将值设置为0,python,image,numpy,crop,Python,Image,Numpy,Crop,所以我试着从一张图像中裁剪出一个250x250的图像。我将每个维度从-125裁剪到125,因此,它超出了范围。我想将所有超出范围的值都设置为0。目前,我有以下几点: im\u crapped=im[-125:125,-125:125] 但是,这会输出一个错误,因为不存在负指数。有没有一种方法可以生成一个250x250的裁剪,并且所有超出边界的像素都设置为0 import numpy as np cropSize = 250 im_cropped = np.zeros_like(im) bidx
im\u crapped=im[-125:125,-125:125]
但是,这会输出一个错误,因为不存在负指数。有没有一种方法可以生成一个250x250的裁剪,并且所有超出边界的像素都设置为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_uz[]技巧创建了一个slice对象,可以与多个数组一起使用,而无需重写slice
我想这会满足你的要求。它创建一个全零数组,然后从原始图像复制中间的250x250正方形。np.s_u[]技巧创建了一个slice对象,可以与多个数组一起使用,而无需重写slice。im的类型是什么?如果它是一个
numpy
数组,那么“-125”表示“后面的125个元素”。im的类型是什么?如果它是一个numpy
数组,那么“-125”表示“后面的125个元素”。