如何将预测的分割掩码与原始图片合并,通常是通过位运算(AND、OR等),将分割信息应用到原图的每个像素。代码
时间: 2024-10-17 17:06:54 浏览: 58
将预测的分割掩码与原始图片结合通常涉及到以下步骤:
1. 导入必要的库:Python中可以使用PIL(Pillow)库来处理图像,以及numpy来进行数组操作。
```python
from PIL import Image
import numpy as np
```
2. 加载原始图片和分割掩码。假设`img`是原始图片,`mask`是灰度的二值分割掩码(0代表背景,非0代表前景)。
```python
# img = Image.open('original_image.jpg')
# mask = Image.open('segmentation_mask.png').convert('L') # 将灰度图转换为单通道
```
3. 确保图片和掩码的尺寸一致。如果需要调整大小,可以使用`resize()`函数。
4. 使用位与(&)操作将掩码与图片像素逐对应地进行处理,只保留掩码部分。这里,`np.array(img)`得到的是一个numpy数组,我们可以直接进行位运算。
```python
combined_img = np.where(mask > 0, img.convert('RGB'), np.zeros_like(img)) # 如果mask大于0,用原图颜色,否则设为黑色
```
5. 最后,将结果转换回PIL图像并保存。
```python
combined_img_pil = Image.fromarray(combined_img)
combined_img_pil.save('combined_image.jpg')
```
阅读全文