[GRASS-dev] [GRASS GIS] #3210: r.texture: bug when non continuous series of values
GRASS GIS
trac at osgeo.org
Wed Nov 16 03:55:51 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 mlennert):
Replying to [comment:6 mmetz]:
> Replying to [comment:5 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.
>
> According to Haralick et al. (1973), the gray tones are quantized which
"guarantees that images which are monotonic transformations of each other
produce the same results". Therefore IDM should indeed stay the same. That
also means that the manually calculated result of 0.4 for the second test
matrix is wrong and the correct result is indeed 0.48333332.
Well, to be complete, the sentence says "Image normalization by equal-
probability quantizing guarantees..." And an algorithm to perform such
quantizing is given in the appendix. I don't think this algorithm is
implemented in r.texture. So, I'm not sure that r.texture in its current
state _should_ give equal results, unless one image is the output of
equal-probability quantizing of the other. But maybe I misunderstand the
whole concept.
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/3210#comment:7>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list