现在已经有语义分割的掩码图了,帮我写一个语义分割之后的mask图从原图中提取出来并且该图像的色值同原图一样,并保存图片的python代码,
时间: 2024-04-12 10:31:26 浏览: 170
当已经有语义分割的掩码图并且需要从原图中提取出来并且保持相同的颜色,可以使用以下代码:
```python
import numpy as np
from PIL import Image
def extract_segmentation_mask(original_image_path, segmentation_mask_path, output_path):
# 加载原图和语义分割掩码图
original_image = Image.open(original_image_path)
segmentation_mask = Image.open(segmentation_mask_path)
# 将原图和掩码图转换为numpy数组
original_np = np.array(original_image)
mask_np = np.array(segmentation_mask)
# 将掩码图转换为二进制格式
binary_mask = (mask_np > 0).astype(np.uint8)
# 提取原图中与掩码对应的像素值
extracted_image_np = original_np * np.expand_dims(binary_mask, axis=2)
# 创建提取后的图像对象
extracted_image = Image.fromarray(extracted_image_np.astype(np.uint8))
# 保存提取后的图像
extracted_image.save(output_path)
# 调用示例
original_image_path = 'path/to/original/image.jpg'
segmentation_mask_path = 'path/to/segmentation/mask.png'
output_path = 'path/to/save/extracted/image.jpg'
extract_segmentation_mask(original_image_path, segmentation_mask_path, output_path)
```
请确保将 `original_image_path`、`segmentation_mask_path` 和 `output_path` 替换为实际的文件路径。这段代码将会加载原图和语义分割掩码图,并将提取后的图像保存到指定的输出路径上。提取后的图像会保持与原图相同的颜色。
请确保已经安装了所需的依赖包 `numpy` 和 `Pillow`(可以通过 `pip install numpy pillow` 安装)。
阅读全文