[GRASS-dev] [GRASS GIS] #3210: r.texture: bug when non continuous series of values
GRASS GIS
trac at osgeo.org
Tue Nov 15 08:04:26 PST 2016
#3210: r.texture: bug when non continuous series of values
--------------------------+-------------------------
Reporter: mlennert | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.2.0
Component: Raster | Version: svn-trunk
Resolution: | Keywords: r.texture
CPU: Unspecified | Platform: Unspecified
--------------------------+-------------------------
Comment (by mmetz):
Replying to [comment:4 mlennert]:
> Replying to [comment:3 mlennert]:
> > Just one question:
> >
> >
> > The manual says:
> >
> > r.texture assumes grey levels ranging from 0 to 255 as input. The
input is automatically rescaled to 0 to 255 if the input map
> > range is outside of this range.
> >
> >
> > But when I rescale the above (second) matrix to 0,255 I get a
different result:
> >
> >
> > {{{
> > r.in.ascii --o in=- out=test_matrix <<EOF
> > north: 3
> > south: 0
> > east: 3
> > west: 0
> > rows: 3
> > cols: 3
> > 1 1 1
> > 3 0 0
> > 0 0 3
> > EOF
> > r.texture -s test_matrix out=text method=idm --o
> > r.stats -1n text_IDM_90
> > 0.40000007
> >
> > r.rescale test_matrix out=test_matrix_rescaled to=0,255
> > r.texture -s test_matrix_rescaled out=text_rescaled method=idm --o
> > r.stats -1n text_rescaled_IDM_90
> > 0.16672371
> > }}}
> >
> > I would have thought that the result should be the same ?
No, because the differences become larger, therefore IDM becomes smaller.
There are other measurements that are also possibly affected: Contrast,
Correlation, Variance, Sum Average, Sum Variance.
IMHO, there is also a bug in all the entropy and information measures
because p * log(p) is zero for p = 0 while the code uses p * log(p +
EPSILON) as a workaround which provides slightly different results for p
!= 0.
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3210#comment:5>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list