[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