web-dev-qa-db-ja.com

画像がグレースケールとして読み込まれない(skimage)

次のようにグレースケールで画像を読み込もうとしています。

from skimage import data
from skimage.viewer import ImageViewer

img = data.imread('my_image.png', as_gray=True)

ただし、img.shapeを使用してその形状を確認すると、2次元ではなく、3次元の配列であることがわかります。私は何が間違っているのですか?

7
rdv

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)
9
Tonechas