是否有获取图像中心像素的简写?

时间:2012-12-08 23:52:21

标签: numpy

numpy中是否有任何索引速记来获取图像(或任何ND数组)的中心像素?

示例:

cutout = xc[xc.shape[0]/2-30:xc.shape[0]/2+30,xc.shape[1]/2-30:xc.shape[1]/2+30]

我可以定义一个函数

def get_center_pixels(arr, npix):
    slices = [slice(shape/2-npix,shape/2+npix) for shape in arr.shape]
    return arr[slices]

cutout = get_center_pixels(xc,30)

有没有更好的方法或内置的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

我能想到的numpy中最接近的标准函数是numpy.fft.fftshift,它沿着所选轴滚动数据,因此中心点现在为[0,0]。