首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用imageio imread从单通道图像(灰度)获取多通道数组(RGB)?

如何使用imageio imread从单通道图像(灰度)获取多通道数组(RGB)?
EN

Stack Overflow用户
提问于 2020-11-21 02:26:24
回答 1查看 1K关注 0票数 1

因此,我想使用imageio将黑白图像读取为3d图像。如果我使用opencv,我会使用下面的命令,因为opencv的默认值是IMREAD_COLOR:im3d = cv2.imread(im_path)这会产生形状(186,148,3)

但是,由于它是黑白图像,因此imageio与opencv相反,默认读取二维图像。因此,im3d = imageio.imread(im_path)得到形状(186,148)。

根据imageio文档,我需要添加" format ",一个带有“用于读取文件的格式”的字符串。让imageio按照我想要的方式运行。请参阅此链接:https://imageio.readthedocs.io/en/stable/userapi.html#imageio.imread

但这是如此糟糕的解释!我经常对文档的糟糕程度感到惊讶。我没有办法知道要输入什么作为“格式”,才能让imageio按照我想要的方式运行。因此,在这方面的任何帮助都将非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2021-01-23 17:04:48

按照您提供的文档链接,您可以在左侧看到一个非常突出的导航项目Docs for the formats。例如,让我们检查PNG format条目,因为PNG支持单通道图像。有一个Parameters for reading部分:你需要提供一个合适的枕头格式的字符串,对于RGB图像,它是'RGB'。要使用的参数称为pilmode。让我们来检查一下:

代码语言:javascript
运行
复制
import imageio

im = imageio.imread('path/to/some/singlechannelimage.png')
print(im.shape)

im3d = imageio.imread('path/to/some/singlechannelimage.png', pilmode='RGB')
print(im3d.shape)

如果我对某个单通道PNG运行该命令,我会得到:

代码语言:javascript
运行
复制
(639, 379)
(639, 379, 3)

我想这就是你想要的。

代码语言:javascript
运行
复制
----------------------------------------
System information
----------------------------------------
Platform:      Windows-10-10.0.16299-SP0
Python:        3.8.5
imageio:       2.9.0
----------------------------------------
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64934925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档