If you look inside /usr/lib/python2.7/dist-packages/scipy/ndimage/tests/test_io.py
, you should see:
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))
This test seems to test if flatten=True
converts an RGB image to a 1-bit grayscale image.
On my Ubuntu 11.10 system, however, dots.png is already a 1-bit image file:
% 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
If I perform a test (manually) on an RGBA image, then the test works:
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)
Therefore, I donβt think that there is anything serious here, itβs just possible that the dots.png
file that was sent should have been an RGB image instead of a shade of gray.
source share