正如标题所述,我正在将图像转换为numpy数组,然后再将其转换回来。这是我的密码:
import os
import numpy as np
from PIL import Image
img = Image.open(os.path.join(no_black_border, png_files[0]))
img.show()
np_arr = np.asarray(img)
img1 = Image.fromarray(np_arr)
img1.show()
这是我的before converting it
这是我的after converting it back
Tags:
您的图像不是RGB,而是调色板图像。这意味着它不是在每个像素位置都有一个红、绿和蓝的值,而是在每个位置都有一个8位的调色板索引,PIL使用它来了解颜色。转换为Numpy数组时将丢失调色板。你知道吗
你有两个选择。你知道吗
或者在打开图像时将其转换为RGB,所有3个值都将带到Numpy:
或者,按当前操作,但在转换回PIL图像后从原始图像重新应用调色板:
参见答案here和附带的评论。你知道吗
相关问题 更多 >
编程相关推荐