我的图片有一个频道。我想复制这一个频道,以便我可以获得一个具有相同频道的新图像,只复制三次。基本上,制作一个准RBG图像。
我看到有关如何使用OpenCV执行此操作的一些信息,但在PIL中没有。在Numpy看起来很容易,但PIL也是如此。我不想养成从图书馆一直跳到图书馆的习惯。
答案 0 :(得分:2)
这是一种不用太苛刻文档的方法..
假图片:
im = Image.new('P', (16,4), 127)
获取单波段图像的(像素)大小;创建一个相同大小的新3波段图像;使用zip
从原始创建像素元组;把它放到新的形象..
w, h = im.size
ima = Image.new('RGB', (w,h))
data = zip(im.getdata(), im.getdata(), im.getdata())
ima.putdata(list(data))
甚至可能
new = im.convert(mode='RGB')
答案 1 :(得分:2)
只需使用:
image = Image.open(image_info.path).convert("RGB")
可以将1通道和4通道转换为3通道