如何创建具有任意数量通道的图像?(Python)

如何创建具有任意数量通道的图像?(Python),python,image-processing,colors,python-imaging-library,anaconda,Python,Image Processing,Colors,Python Imaging Library,Anaconda,我正在从事Python的一个项目,Anaconda发行版,需要创建和处理具有任意数量通道的图像。例如,RGB有三个通道 (R,G,B) 我需要有任意数量的用户定义通道,可能多达90个左右(实际上是元素通道,来自x射线荧光数据): 其中每个通道只是一个灰度图像(显然) 到目前为止,我一直在使用PIL Image模块,除了这个特殊的任务之外,它工作得非常好PIL不支持使用的已定义图像模式,只有少数几种模式可供选择,其中没有一种模式高于4个通道(CMYK) 文件非常简要地指出了这一点,指出: 但是,

我正在从事Python的一个项目,Anaconda发行版,需要创建和处理具有任意数量通道的图像。例如,RGB有三个通道

(R,G,B)
我需要有任意数量的用户定义通道,可能多达90个左右(实际上是元素通道,来自x射线荧光数据):

其中每个通道只是一个灰度图像(显然)

到目前为止,我一直在使用
PIL Image
模块,除了这个特殊的任务之外,它工作得非常好
PIL
不支持使用的已定义图像模式,只有少数几种模式可供选择,其中没有一种模式高于4个通道
(CMYK)

文件非常简要地指出了这一点,指出:

但是,PIL不支持用户定义的模式;如果要处理上面未列出的标注栏组合,请使用图像对象序列

这看起来很模糊,我不确定我是否知道如何实现这一点。图像对象序列?指的是一系列对象,每个对象都有
PIL
支持的图像模式?看起来效率低下而且丑陋

我怎样才能做到这一点?除了
PIL
之外,我还可以使用其他软件包吗


如果真的归结到这一点,我不需要渲染图像,我只需要使用“像素”数据进行处理,但最终得到一幅图像还是不错的

也许简单的numpy数组就足够了

使用numpy,您可以使用多个通道存储图像(此处所示为 3个频道):


嗨,我想看看PIL的实现,看看他们是如何改变3对4通道的。希望限制是存在的,因为它不能将超过四个通道渲染为一幅图像。ImageMagick的第7版将支持图像中任意数量的通道,但它要到明年初才到期……对于我的程序的主要目的,是的,存储在阵列中的像素数据就足够了。这只是一个更好地向用户展示结果的问题。
(Fe, P, K, S, Si, ...)
import numpy as np
num_channels = 3
random_image = np.random.randint(0,256, (300,400,num_channels))