Если вы посмотрите внутрь /usr/lib/python2.7/dist-packages/scipy/ndimage/tests/test_io.py
, вы должны увидеть:
def test_imread():
lp = os.path.join(os.path.dirname(__file__), 'dots.png')
img = ndi.imread(lp)
assert_array_equal(img.shape, (300, 420, 3))
img = ndi.imread(lp, flatten=True)
assert_array_equal(img.shape, (300, 420))
Этот тест, по-видимому, проверяет, преобразует ли flatten=True
изображение RGB в 1-битное изображение в оттенках серого.
В моей системе Ubuntu 11.10, однако, dots.png уже является 1-битным файлом изображения:
% file /usr/share/pyshared/scipy/ndimage/tests/dots.png
/usr/share/pyshared/scipy/ndimage/tests/dots.png: PNG image data, 420 x 300, 1-bit colormap, non-interlaced
Если я выполняю тест (вручную) для изображения RGBA, тогда тест работает:
In [18]: z = ndi.imread('image.png')
In [20]: z.shape
Out[20]: (250, 250, 4)
In [24]: w = ndi.imread('image.png', flatten = True)
In [25]: w.shape
Out[25]: (250, 250)
Так что я не думаю, что здесь что-то серьезно неправильно, просто, возможно, файл dots.png
, который был отправлен, должен был быть изображением RGB, а не серым.