如何使用任意数量的通道创建图像? (蟒蛇)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用任意数量的通道创建图像? (蟒蛇)相关的知识,希望对你有一定的参考价值。

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

(R,G,B)

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

(Fe, P, K, S, Si, ...)

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

到目前为止,我一直在使用PIL Image模块,除了这个特殊的任务外,它运行得很好。 PIL不支持使用的已定义图像模式,并且只有少数几种模式可供选择,其中没有一种模式超过4个通道(CMYK)

文档非常简短地说明了这一点:

但是,PIL不支持用户定义的模式;如果要处理上面未列出的波段组合,请使用一系列图像对象。

这看起来很模糊,我不确定我是否确切知道如何实现这一点。一系列Image对象?意味着一系列对象,每个对象都有PIL支持的图像模式?似乎效率低下且难看。

我怎么能做到这一点?除了PIL之外我有没有可以使用的包裹?

如果它真的归结为它,我不需要渲染图像,我可以只使用“像素”数据进行处理,但最终结果是一个图像仍然是好的。

答案

也许简单的numpy数组对你来说已经足够了?

另一答案

使用numpy,您可以存储具有多个通道的图像(此处显示3个通道):

import numpy as np
num_channels = 3
random_image = np.random.randint(0,256, (300,400,num_channels))

以上是关于如何使用任意数量的通道创建图像? (蟒蛇)的主要内容,如果未能解决你的问题,请参考以下文章

蟒蛇。创建特征向量,其中条目是过去状态的序列

如何在循环中创建频道?

如何从Android片段中的相机获取图像

如何编写 5+ 通道 TIFF?

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

android如何使用listview而不是scrollview