Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

image segmentation error (tuple index out of range)

1,083 views
Skip to first unread message

Anurag Phadke

unread,
Jan 8, 2016, 12:04:48 AM1/8/16
to scikit-image
Hello,
I am trying to run "image segmentation" on the attached image. Code at:
https://gist.github.com/anuragphadke/7eb0e4398ef005632c6d

However, on running the above script, i get the following error:

Traceback (most recent call last):
  File "a.py", line 21, in <module>
    bw = closing(image > thresh, square(3))
  File "/Library/Python/2.7/site-packages/skimage/morphology/misc.py", line 37, in func_out
    return func(image, selem=selem, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/skimage/morphology/grey.py", line 122, in func_out
    out_temp = func(image, selem, out=out_temp, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/skimage/morphology/grey.py", line 349, in closing
    dilated = dilation(image, selem)
  File "/Library/Python/2.7/site-packages/skimage/morphology/misc.py", line 37, in func_out
    return func(image, selem=selem, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/skimage/morphology/grey.py", line 251, in dilation
    nd.grey_dilation(image, footprint=selem, output=out)
  File "/usr/local/lib/python2.7/site-packages/scipy/ndimage/morphology.py", line 1295, in grey_dilation
    sz = footprint.shape[ii]
IndexError: tuple index out of range

Any idea what might be wrong here? I tried multiple images and multiple file formats (jpg / png etc.)

-anurag

c.png

Emmanuelle Gouillart

unread,
Jan 8, 2016, 2:44:54 AM1/8/16
to scikit...@googlegroups.com
Hello Anurag,

my guess is that your image is an RGB image, so that its shape is
(n_rows, n_cols, 3). I could reproduce your problem using the RGB
astronaut image from scikit-image (data.astronaut()). ``threshold_otsu``
is not very well adapted to RGB images because it mixes together the
color channels by first raveling all pixels. [Note for dev team: this
should be better documented, and we should look for a thresholding
algorithm compatible with RGB images]

Therefore ``image > thresh`` is a 3-D array (or 2-D color, you can try
imshow on this array). You can try determining the threshold value on a
grayscale image if it's possible for you, using the as_grey keyword
argument in io.imread. Or you can determine a threshold for each color
channel.

Cheers,
Emma

Stéfan van der Walt

unread,
Jan 8, 2016, 2:47:31 AM1/8/16
to scikit-image

Hi, Emmanuelle

Please file a ticket so that we don't forget about this missing feature.

Thanks!
Stéfan

--
You received this message because you are subscribed to the Google Groups "scikit-image" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scikit-image...@googlegroups.com.
To post to this group, send an email to scikit...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/scikit-image/20160108074452.GA3070033%40phare.normalesup.org.
For more options, visit https://groups.google.com/d/optout.

Emmanuelle Gouillart

unread,
Jan 8, 2016, 2:59:24 AM1/8/16
to scikit...@googlegroups.com

Anurag

unread,
Jan 8, 2016, 1:24:15 PM1/8/16
to scikit...@googlegroups.com
thx emma + Stefan. Here's my temporary work-around:
Convert to Grayscale, save as JPG, run the code.

-anurag


--
You received this message because you are subscribed to a topic in the Google Groups "scikit-image" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/scikit-image/QP6sHolCVgs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to scikit-image...@googlegroups.com.
To post to this group, send an email to scikit...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Twitter: @anuragphadke (https://twitter.com/#!/anuragphadke)
Reply all
Reply to author
Forward
0 new messages