有两个文件夹,其中一个里面都是原始图像文件格式为jpg,另一个文件是图像文件对应的掩膜文件,使用python,批量读取原始图像和掩膜,掩膜为图像文件的背景图,单通道,最大为1最小为0,使原始图像文件背景为透明,保存在新的文件夹中格式为rgba
时间: 2024-05-15 18:18:31 浏览: 147
回答:
好的,您需要使用Python读取两个文件夹中的图像和掩膜,并将它们组合成新的带透明背景的图像并将其保存在新的文件夹中。
以下是一个Python程序,它可以实现您的要求:
```python
import os
from PIL import Image
# 输入原始图像路径和掩膜路径
image_folder = input("请输入原始图像文件夹路径:")
mask_folder = input("请输入掩膜文件夹路径:")
# 创建新的文件夹保存结果
if not os.path.exists("rgba_images"):
os.makedirs("rgba_images")
# 遍历原始图像文件夹
for filename in os.listdir(image_folder):
if filename.endswith(".jpg"):
# 找到对应的掩膜文件
mask_filename = os.path.splitext(filename)[0] + ".png"
mask_path = os.path.join(mask_folder, mask_filename)
# 打开原始图像和掩膜
image = Image.open(os.path.join(image_folder, filename))
mask = Image.open(mask_path).convert("L")
# 将掩膜转换为有alpha通道的图像
rgba_mask = Image.new("RGBA", image.size, (0, 0, 0, 0))
rgba_mask.putalpha(mask)
# 将原始图像复制到新的rgba图像中,使用掩膜背景为透明
rgba_image = Image.new("RGBA", image.size, (0, 0, 0, 0))
rgba_image.paste(image, (0, 0), rgba_mask)
# 将新的rgba图像保存到文件夹
rgba_image.save(os.path.join("rgba_images", filename.replace(".jpg", ".png")))
```
您只需要依次输入原始图像文件夹路径和掩膜文件夹路径,程序就会自动遍历并处理每个图像和掩膜,将它们合并成新的带透明背景的图像并保存在`rgba_images`文件夹中。
希望这个程序可以帮助到您。
阅读全文