因此,我想使用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按照我想要的方式运行。因此,在这方面的任何帮助都将非常感谢!
发布于 2021-01-23 17:04:48
按照您提供的文档链接,您可以在左侧看到一个非常突出的导航项目Docs for the formats
。例如,让我们检查PNG format条目,因为PNG支持单通道图像。有一个Parameters for reading部分:你需要提供一个合适的枕头格式的字符串,对于RGB图像,它是'RGB'
。要使用的参数称为pilmode
。让我们来检查一下:
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运行该命令,我会得到:
(639, 379)
(639, 379, 3)
我想这就是你想要的。
----------------------------------------
System information
----------------------------------------
Platform: Windows-10-10.0.16299-SP0
Python: 3.8.5
imageio: 2.9.0
----------------------------------------
https://stackoverflow.com/questions/64934925
复制相似问题