center = 200, 200
radius = 100
mask = numpy.zeros((imArray.shape[0], imArray.shape[1]))
for i in range(imArray.shape[0]):
    for j in range(imArray.shape[1]):
        if (i - center[0]) ** 2 + (j - center[0]) ** 2 < radius ** 2:
            mask[i, j] = 1
newImArray = numpy.empty(imArray.shape, dtype='uint8')
newImArray[:, :, :3] = imArray[:, :, :3]
newImArray[:, :, (3)] = mask * 255
newIm = Image.fromarray(newImArray, 'RGBA')
newIm.save('lena3.png')
Обрезать несимметричную область изображения с помощью Python/PIL