2

我正在处理图像处理脚本(Python带有PIL库),我需要将任何图像的颜色空间转换为RGB. 我试过这个技巧,但它只适用pngRGBa色彩空间中的图像:

image = Image.open(imageFile)
image.load()

# replace alpha channel with white color
self.im = Image.new('RGB', image.size, (255, 255, 255))
self.im.paste(image, mask=image.split()[3])

如何使此代码普遍适用于任何色彩空间中的所有图像?

谢谢。

4

2 回答 2

1

找到解决方案:

image = Image.open(imageFile)
image.load()

# replace alpha channel with white color
self.im = Image.new('RGB', image.size, (255, 255, 255))
self.im.paste(image, None)

self.im变量中将存储具有白色(255、255、255)alpha 通道的 RGB 颜色空间中的图像。

于 2013-04-12T11:59:46.087 回答
0

您只想使用 PIL 吗?我建议使用 openCV 版本 2 python 绑定cv2

http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#cv2.cvtColor

它在最常见的色彩空间之间有许多可能的转换。

如果你不想要openCV你可以使用skimage

http://scikit-image.org/docs/dev/api/skimage.color.html#convert-colorspace

于 2013-04-11T11:37:54.620 回答