学习内容:
https://blog.csdn.net/guduruyu/article/details/71439733
Python图像处理实现两幅图像合成一幅图像的方法。分享给大家供大家参考,具体如下:
将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅图像合成一幅图像的接口。
下面我们通过不同的方式,将两图合并成一幅图像。
1、使用Image.blend()接口
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
# -*- 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)的形式对两幅图像进行合并。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# -*- 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类似。