#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: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 ? I see this comes from lines 277ff in main.c: {{{ inscale = 0; if (min < 0 || max > 255) { inscale = 255. / (max - min); } /* input has 0 - 1 range */ else if (max <= 1.) { inscale = 255. / (max - min); } }}} So, as long as the data does not contain a value above 255 we just assume that it is scaled to 255, unless the max is < 1. So, data with 0, 1, 2, 3 is just considered as already being scaled to 0,255... Don't know, yet, what to think of this. -- Ticket URL: <https://trac.osgeo.org/grass/ticket/3210#comment:4> GRASS GIS <https://grass.osgeo.org> _______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev