2015-11-10 109 views
0

我正在使用枕頭從圖像中剪出一個形狀。要做到這一點,我使用了一個alpha遮罩,它包含我需要的形狀的黑白圖像。當我使用枕頭敷貼面具時,我留下了一幅圖像的摳圖,就像我想要的那樣,但它是由來自不同文件夾的完全不相關的圖片勾勒出來的。使用錯誤蒙版的Python枕頭

我使用的面具是這個: enter image description here

當我從interwebs(this one to be exact)隨機圖片結合起來,我得到這個結果: enter image description here

白圖像周圍的邊框位於與工作區域不同的文件夾中,並且永遠不會被我的代碼引用。 enter image description here

我根本不知道枕頭是如何得到白色邊框的。這真的很令人沮喪。有人知道爲什麼發生這種情況?

僅供參考,這裏的代碼,以及:

from PIL import Image 

def Blend_Pic(): 
    background = Image.open("bg.png") 
    mask = Image.open("mask2.png").convert("L") 
    foreground = Image.open("fg.png") 

    background.paste(foreground, (0, 0), mask) 
    background.show() 

if __name__ == "__main__": 
    Blend_Pic() 

背景只是一個空1600x900的PNG和前景是從谷歌的隨機圖像。

編輯:改變面具只是一個簡單的矩形給出了相同的結果,所以改變面具沒有幫助。

+0

答案是顯而易見的:你認爲你運行的代碼,你在這裏展示的是*不是你實際運行的代碼。或者,或者'fg.png'已經包含了前一步的邊界。 –

+0

我絕對運行正確的代碼,前景圖片絕對沒有邊界。我已經多次改變了工作目錄,以確保我運行正確的代碼,並重新從谷歌下載了前臺,但仍然是同樣的問題。 – watswat5

+0

將全路徑名放入'open'調用中,以加倍確保您獲得正確的文件。在打開圖像後立即在圖像上放上一個「show」,以確保三重奏。 –

回答

0

重新生成新的背景圖像後,神祕的邊框消失了。儘管Gimp沒有展示任何東西,但最初的背景圖像通過一些阿爾法詭計或其他東西隱藏了邊界。