我尝试按如下方式将图像加载为灰度:
from skimage import data
from skimage.viewer import ImageViewer
img = data.imread('my_image.png', as_gray=True)
但是,如果我使用img.shape
检查其形状,那么它就是一个三维而非二维的数组。我究竟做错了什么?
答案 0 :(得分:7)
从scikit-image documentation开始,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)