从图片 PILLOW 中删除选定区域

Remove selected area from picture PILLOW

import numpy
from PIL import Image, ImageDraw

im = Image.open("image.jpg").convert("RGBA")

imArray = numpy.asarray(im)

polygon = [(700,150),(1200,150),(1200,450),(1000,650),(700,650)]
maskIm = Image.new('L', (imArray.shape[1], imArray.shape[0]), 0)
ImageDraw.Draw(maskIm).polygon(polygon, outline=1, fill=1)
mask = numpy.array(maskIm)

newImArray = numpy.empty(imArray.shape,dtype='uint8')

newImArray[:,:,:3] = imArray[:,:,:3]
newImArray[:,:,3] = mask*255

newIm = Image.fromarray(newImArray, "RGBA")
newIm.show()

原图

在这段代码之后,我得到了这张图片

我怎样才能从图片中删除选择?

我想这样做

提前感谢您的帮助

您似乎需要反转掩码 - 目前,您的多边形周围有 0 个,内部有 1 个。

尝试将 newImArray[:,:,3] = mask*255 更改为 newImArray[:,:,3] = (1-mask)*255