python 利用 掩码图 将 两张图 合并的代码
时间: 2023-03-01 20:23:12 浏览: 65
这是一份使用掩码图合并两张图片的 Python 代码:
```python
import cv2
import numpy as np
# 读入图片
img1 = cv2.imread('img1.jpg')
img2 = cv2.imread('img2.jpg')
# 读入掩码图
mask = cv2.imread('mask.jpg', 0)
# 把掩码图转换为与图片尺寸一致的掩码数组
mask = cv2.resize(mask, (img2.shape[1], img2.shape[0]))
# 创建一个遮罩数组,为了方便计算把掩码数组类型转换为 float
mask = mask.astype(float) / 255
# 利用掩码图合并两张图片
result = img1 * (1 - mask[:, :, np.newaxis]) + img2 * mask[:, :, np.newaxis]
# 保存合并后的图片
cv2.imwrite('result.jpg', result)
```
这份代码使用了 OpenCV 库中的函数读入和保存图片,并通过调整掩码图的尺寸和类型将两张图片合并在一起。
相关问题
python如何将两张图片重叠在一起
在Python中,你可以使用Pillow库来将两张图片重叠在一起。下面是一个示例代码:
```python
from PIL import Image
# 打开第一张图片
img1 = Image.open('image1.jpg')
# 打开第二张图片
img2 = Image.open('image2.jpg')
# 将第二张图片复制到第一张图片上
img1.paste(img2, (0, 0), img2)
# 保存合成后的图片
img1.save('merged_image.jpg')
```
在这个例子中,我们首先打开第一张图片和第二张图片。然后,我们使用`paste`方法将第二张图片复制到第一张图片上。`paste`方法的第一个参数是要复制的图片,第二个参数是复制的位置,第三个参数是掩码,用于指定要复制的区域。在这个例子中,我们将第二张图片复制到第一张图片的左上角,因此掩码为第二张图片本身。最后,我们将合成后的图片保存为一个新文件。
用Python如何将三张图片叠加
可以使用Python的PIL库(Pillow库)来将三张图片叠加。以下是一个示例代码:
```python
from PIL import Image
# 打开三张图片
img1 = Image.open("image1.jpg")
img2 = Image.open("image2.jpg")
img3 = Image.open("image3.jpg")
# 获取图片的宽和高
width, height = img1.size
# 新建一个空白图像,大小和原图一样
result_img = Image.new("RGB", (width, height))
# 将三张图片叠加到空白图像上
result_img.paste(img1, (0, 0))
result_img.paste(img2, (0, 0), img2)
result_img.paste(img3, (0, 0), img3)
# 保存叠加后的图片
result_img.save("result.jpg")
```
在上述代码中,先打开三张图片,然后获取其中一张图片的宽和高,以便新建一个大小相同的空白图像。然后,使用PIL库的paste()方法将三张图片叠加到空白图像上。第一张图片直接粘贴,第二张和第三张图片需要指定一个掩码,即将掩码中非透明部分的像素覆盖在目标图像上,透明部分则不会被覆盖。最后,将叠加后的图片保存即可。