2016-05-01 40 views
1

我想用PNG黑色/透明蒙版來掩蓋jpg圖像,但由於混疊和邊框模糊,我總是在輸出輪廓線的原始jpg。用Python Pillow(或PIL)增加JPG上的PNG蒙面區域

由於任務不需要圖形精度,因此可以通過將遮罩面積增加幾個像素來輕鬆解決此問題。

因此,例如,如果蒙版區域允許100px的居中圓圈,只需將某個像素「擴展」圓圈就可以解決問題。

有沒有辦法用枕頭做到這一點?

+0

我不知道,但枕,如果你能找到一些有功能形態,一個'dilate'或'erode'很可能會使用一個。 –

+0

可悲的是我沒有找到擴張/侵蝕功能:(但我無論如何找到了解決方案。 – Stormsson

回答

1

我找到了解決方案;我寫下來,以便其他人可能會受益,如果需要:

1)將高斯模糊應用於蒙版。這將「擴展」的邊界與窗簾

1B)中的黑/白顏色僅在需要

2轉換)應用該基於閾值的黑色或白色的各像素變換的變換。沒有其他顏色允許

這樣類似的事情:

blackThreshold = 128.0 
img = img.filter(ImageFilter.GaussianBlur(radius=3)) 
r,g,b,a = img.split() # supposing to have a RGBA PNG 
gray = Image.merge('L',(a,)) # 
gray = gray.point(lambda x: 0 if x<blackThreshold else 255)