我正在尝试将图像加载为灰度图像,方法如下:
from skimage import data
from skimage.viewer import ImageViewer
img = data.imread('my_image.png', as_gray=True)
然而,如果我使用img.shape
检查其形状,则结果是一个三维数组,而不是二维数组。我做错了什么?
我正在尝试将图像加载为灰度图像,方法如下:
from skimage import data
from skimage.viewer import ImageViewer
img = data.imread('my_image.png', as_gray=True)
然而,如果我使用img.shape
检查其形状,则结果是一个三维数组,而不是二维数组。我做错了什么?
从scikit-image文档中可以看到,data.imread
的函数签名如下:
你的代码不能正常工作,因为关键字参数
skimage.data.imread(fname, as_grey=False, plugin=None, flatten=None, **plugin_args)
as_grey
拼写错误(应是as_gray
)。示例运行结果
In [4]: from skimage import data In [5]: img_3d = data.imread('my_image.png', as_grey=False) In [6]: img_3d.dtype Out[6]: dtype('uint8') In [7]: img_3d.shape Out[7]: (256L, 640L, 3L) In [8]: img_2d = data.imread('my_image.png', as_grey=True) In [9]: img_2d.dtype Out[9]: dtype('float64') In [10]: img_2d.shape Out[10]: (256L, 640L)
data.imread()
是否比rgb2gray
包中的rgb2gray()
更好呢? - rdvimg = skimage.io.imread('my_image.png', as_grey=True)
,因为已经是灰度格式的图像不需要转换。如果你将一个非3-D或4-D的图像传递给rgb2gray
,你会得到一个ValueError。 - Tonechasas_grey
已被弃用,请改用as_gray
。 - pka32