這篇文章主要介紹了Python影象處理實現兩幅影象合成一幅影象的方法,結合例項形式分析了Python使用Image.blend()介面與Image.composite()介面進行影象合成的相關操作技巧,需要的朋友可以參考下
本文例項講述了Python影象處理實現兩幅影象合成一幅影象的方法。分享給大家供大家參考,具體如下:將兩幅影象合成一幅影象,是影象處理中常用的一種操作,python影象處理庫PIL中提供了多種種將兩幅影象合成一幅影象的介面。下面我們透過不同的方式,將兩圖合併成一幅影象。
1、使用Image.blend()介面程式碼如下:
# -*- coding:utf-8 -*-
from PIL import Image
def blend_two_images():
img1 = Image.open( "bridge.png ")
img1 = img1.convert('RGBA')
img2 = Image.open( "birds.png ")
img2 = img2.convert('RGBA')
img = Image.blend(img1, img2, 0.3)
img.show()
img.save( "blend.png")
return
blend_two_images()
兩幅影象進行合併時,按公式:blended_img = img1 * (1 – alpha) + img2* alpha 進行。
合成結果如下:
2、使用Image.composite()介面
該介面使用掩碼(mask)的形式對兩幅影象進行合併。
程式碼如下:
# -*- coding:utf-8 -*-
from PIL import Image
def blend_two_images2():
img1 = Image.open( "bridge.png ")
img1 = img1.convert('RGBA')
img2 = Image.open( "birds.png ")
img2 = img2.convert('RGBA')
r, g, b, alpha = img2.split()
alpha = alpha.point(lambda i: i>0 and 204)
img = Image.composite(img2, img1, alpha)
img.show()
img.save( "blend2.png")
return
blend_two_images2()
程式碼第9行中指定的204起到的效果和使用blend()介面時的0.3類似。
合併後的效果如下: