[GRASS-user] Extracting grey features from an image

Hello

I've got a black and white image with some grey features on it

I'd like to create a new image containing only these features so I can
vectorize them

i think that I have to use
r.mask
r.mapcalc
or
r.reclass

r.describe raster
returns me
0-121 123 125-127 132-255

I created a mask of my image
r.mask input=image maskcats="0 thru 121" -i
-i to invert the maskcats range

Only the grey features appear.

So, my grey features seem to have the 0-121 range category of values.

Considering that, how can I manage to create a raster map based only on
these values.

I used r.reclass like this:
r.reclass input=raster output=rasterRec

0 thru 121=1 black
*=NULL

But I didn't get any good result...

Any help would be greatly appreciated!

--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Extracting-grey-features-from-an-image-tp5107822p5107822.html
Sent from the Grass - Users mailing list archive at Nabble.com.

On 05/27/2010 12:59 PM, baobazz wrote:

Hello

I've got a black and white image with some grey features on it

I'd like to create a new image containing only these features so I can
vectorize them

i think that I have to use
r.mask
r.mapcalc
or
r.reclass

r.describe raster
returns me
0-121 123 125-127 132-255
   

If I understand you correctly, you have a grey-scale raster (values from 0-255) which is displayed in three colors, black, grey and white?
From the above there are cells with values from 0-255, the only values that do *not* appear are 122, 124, and 128-131.
Perhaps you can run r.describe -1 ( or r.stats -ap ) to output all the categories, one per line, to have a clear idea of what the original contains.

Now, if you need to separate out raster cells with certain category values, then vectorize it, you could do, i.e.:

# extract only values between 125 and 127
r.mapcalc grey_raster="if(orig_rast>=125 and orig_rast<=127, 1, null() )"
# All cells from 125-127 get the value '1' in the new raster. All others are null.

# convert to vector
r.to.vect in=grey_raster out=grey_polygons feature=area

This will clump together into a vector of polygons all raster cells that have values 125,126, or 127.

HTH
--
Micha

I created a mask of my image
r.mask input=image maskcats="0 thru 121" -i
-i to invert the maskcats range

Only the grey features appear.

So, my grey features seem to have the 0-121 range category of values.

Considering that, how can I manage to create a raster map based only on
these values.

I used r.reclass like this:
r.reclass input=raster output=rasterRec
   

0 thru 121=1 black
*=NULL
     

But I didn't get any good result...

Any help would be greatly appreciated!

--
Micha Silver
http://www.surfaces.co.il/
Arava Development Co. +972-52-3665918

Use r.mask as already done to identify your grey values only, then apply r.mapcalc "new_raster=if(MASK,orig_raster,null())".

Christian.

--------------------------------------------------
From: "baobazz" <baobazz@hotmail.fr>
Sent: Thursday, May 27, 2010 11:59 AM
To: <grass-user@lists.osgeo.org>
Subject: [GRASS-user] Extracting grey features from an image

Hello

I've got a black and white image with some grey features on it

I'd like to create a new image containing only these features so I can
vectorize them

i think that I have to use
r.mask
r.mapcalc
or
r.reclass

r.describe raster
returns me
0-121 123 125-127 132-255

I created a mask of my image
r.mask input=image maskcats="0 thru 121" -i
-i to invert the maskcats range

Only the grey features appear.

So, my grey features seem to have the 0-121 range category of values.

Considering that, how can I manage to create a raster map based only on
these values.

I used r.reclass like this:
r.reclass input=raster output=rasterRec

0 thru 121=1 black
*=NULL

But I didn't get any good result...

Any help would be greatly appreciated!

--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Extracting-grey-features-from-an-image-tp5107822p5107822.html
Sent from the Grass - Users mailing list archive at Nabble.com.
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Thanks a lot for the answers!

I managed to identify the range of values containing the grey category
values.
So, my command became:
r.mapcalc grey_raster=if(tragh.red>=132&&tragh.red<=200, 1, null())

It was a little difficult.
I had to make it step by step.

One way would be to use in addition
r.what
or
r.what.vect
to sample the cat values corresponding to my grey zones

Thank you
--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/Extracting-grey-features-from-an-image-tp5107822p5108384.html
Sent from the Grass - Users mailing list archive at Nabble.com.