如何为图像添加轮廓?

How can I add an outline to an image?

我是 Python 的新手,我有一个 python 函数可以为图像添加轮廓。但是,该函数目前在图像内部添加了一个像素的轮廓,而不是像它应该的那样在外部添加轮廓。我怎样才能修改它以使轮廓更远 1 个像素?

def addOutline(imageArray):
    from statistics import mean
    newAr = imageArray
    newAr.flags.writeable = True
    balance = 250
    for i0 in range(1,len(newAr)):
        for i in range(1,len(newAr[i0])):
            if mean(newAr[i0][i][:3]) > balance and mean(newAr[i0][i-1][:3]) < balance:
                newAr[i0][i-1][:3] = 40
            if mean(newAr[i0][i][:3]) < balance and mean(newAr[i0][i-1][:3]) > balance:
                newAr[i0][i][:3] = 40
            if mean(newAr[i0][i][:3]) < balance and mean(newAr[i0-1][i][:3]) > balance:
                newAr[i0][i][:3] = 40
            if mean(newAr[i0][i][:3]) < balance and mean(newAr[i0+1][i][:3]) > balance:
                newAr[i0][i][:3] = 40

    return newAr

我猜如果你真的想让轮廓在图形之外。您需要创建一个大小为 (len(newAr)+1)*(len(newAr[0]+1)) 的新图像数组,其中多余的像素用于放置您的线条。里面的所有其他像素都应该从原始图像中复制。