[GRASS-dev] [GRASS GIS] #3545: i.superpixels.slic: behaviour of step parameter confusing

GRASS GIS trac at osgeo.org
Wed Apr 18 05:38:54 PDT 2018


#3545: i.superpixels.slic: behaviour of step parameter confusing
--------------------------+-------------------------------------
  Reporter:  mlennert     |      Owner:  grass-dev@…
      Type:  defect       |     Status:  new
  Priority:  minor        |  Milestone:
 Component:  Addons       |    Version:  unspecified
Resolution:               |   Keywords:  i.superpixels.slic step
       CPU:  Unspecified  |   Platform:  Unspecified
--------------------------+-------------------------------------

Comment (by mlennert):

 Replying to [comment:4 mmetz]:
 > Replying to [comment:2 mlennert]:
 > > Replying to [comment:1 mmetz]:
 > > > Replying to [ticket:3545 mlennert]:
 > > > > The behavior of the step parameter in i.superpixels.slic is a bit
 confusing:
 > > > >
 > > > > [...]
 > > > >
 > > > > Normally, one would expect a larger number of seeds with step=2
 than step=20. This behavior comes from lines 277ff of main.c, which read:
 > > > >
 > > > >
 > > > > {{{
 > > > > superpixelsize = step * step;
 > > > > if (step < 5) {
 > > > >     superpixelsize = 0.5 + (double)nrows * ncols / n_super_pixels;
 > > > >
 > > > >     step = sqrt((double)superpixelsize) + 0.5;
 > > > > }
 > > > >
 > > > > Why this limit at 5 ? If it is really necessary, it should at
 least be documented in the man page to avoid confusion.
 > > > >
 > > > > }}}
 > > > >
 > > > The reason is that with small step sizes, you would get mini-
 superpixels, mostly squares. The SLIC algorithm likes a somewhat larger
 distance between superpixel centers in order to produce reasonable
 results. You can modify the condition to `step < 2` and see what happens.
 > >
 > > Doing this and asking for a step of 2 both on my VISNIR aerial photos
 and on the BW NC orthophoto, I get tiny superpixels of divers shapes. I
 don't find them very useful for my particular application, but this should
 be up to the user to decide, not imposed by the module.
 >
 > OK, I changed the condition to `step < 2` and updated the option
 description in r72634.


 Thanks, but this will lead to the same issue for step = 1. Why do you want
 to make this into such a special case ? When I comment out everything
 between l277 and l281, and launch the module with step=1 on the NC
 orthophoto I get as many "superpixels" as original pixels. Again, I cannot
 imagine a use case for this, but why should the module artificially
 replace this with a calculation the origin of which is not really clear.

 I would plead for respecting the user's choice of step, with a mention in
 the man page that a step below 5 will lead to extremely small superpixels.

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/3545#comment:5>
GRASS GIS <https://grass.osgeo.org>



More information about the grass-dev mailing list