python – PIL最好的方式來替換顏色?
然而,影象質量有點有損,所以它留下一個奇怪的彩色畫素的一點點在哪裡被刪除.如果所有三個值都低於100,那麼我嘗試像畫素一樣改變畫素,但是由於影象質量差,周圍的畫素甚至不是黑色的.
有沒有人知道用PIL在Python中更好的方式來替換顏色和周圍的任何東西?這可能是我可以想到的唯一可靠的火災方式,完全刪除物件,但我不能想到一種方法來做到這一點.
圖片具有白色背景和黑色文字.我們只是說我想從影象中完全刪除文字,而不會留下任何文物.
真的很感激某人的幫助!謝謝
您需要將影象代表為二維陣列.這意味著要建立畫素列表的列表,或者使用一些聰明的數學方法將二維陣列視為二維陣列.然後,對於每個要定位的畫素,您需要找到所有周圍的畫素.因此,您可以使用python生成器:
def targets(x,y): yield (x,y) # Center yield (x+1,y) # Left yield (x-1,y) # Right yield (x,y+1) # Above yield (x,y-1) # Below yield (x+1,y+1) # Above and to the right yield (x+1,y-1) # Below and to the right yield (x-1,y+1) # Above and to the left yield (x-1,y-1) # Below and to the left
所以,你會這樣使用:
for x in range(width): for y in range(height): px = pixels[x][y] if px[0] == 255 and px[1] == 255 and px[2] == 255: for i,j in targets(x,y): newpixels[i][j] = replacementColor
程式碼日誌版權宣告:
翻譯自:http://stackoverflow.com/questions/1616767/pil-best-way-to-replace-color