2016-09-25 104 views
0

我对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 
+0

在php中:http://www.sputnick.fr/how-to-create-an-outline-with-gd-and-php/ – wam

回答

3

我想如果你真的想要大纲超出数字。您需要创建一个大小为(len(newAr)+1)*(len(newAr[0]+1))的新图像阵列,其中多余的像素用于放置线条。里面的所有其他像素应该从原始图像中复制。