Hi Jody,
I just do use this little method I've created, but then I still need to
create a GridCoverage2D from the result.
public static RenderedImage binarize(RenderedImage image, double threshold)
{
ParameterBlock pb = new ParameterBlock();
pb.add(threshold).addSource(image);
RenderedImage binarized = JAI.create("binarize", pb);
return binarized;
}
Your way looks a bit nicer though :-)
Jon
On 21 June 2010 08:55, Jody Garnett <[email protected]> wrote:
> Afternoon Simone / Michael:
>
> Time for me to ask a question on the user list ... I was looking to produce
> a black and white image to feed into the raster to vector process. And it
> was not as easy as I remember.
>
> I did find a few interesting parts to the puzzle:
> - The JAI Operation binarize seems to do the trick
> - OperationJAI can wrap up a JAI OperationDescriptor in geotools clothing
> so it can be applied to grid coverages ... but got stuck as Binarize
> operation does not seem to run around as an instance you can pass in to
> JAIOperation; and it is not captured as a subclass either
>
> Moving on there is a utility class:
> - Operations - looks very useful but could not sort out how to get it to
> threshold my raster
>
> Finally I found:
> - ImageWorker a very easy class for working on images directly ...
> - ... but then you need to go through the steps to wrap the result back up
> in a coverage using a CoverageFactoryFinder etc...
>
> So the question is? Did I miss something - why was this one so hard :-)
>
> For reference here is the sample code I ended up with:
> GridCoverage2D gradient = (GridCoverage2D)
> Operations.DEFAULT.gradientMagnitude( dem );
> RenderedImage rawImage = gradient.getRenderedImage();
>
> ImageWorker worker = new ImageWorker( rawImage );
> worker.binarize(maxSlope);
>
> RenderedImage processed = worker.getRenderedImage();
> GridCoverageFactory fac =
> CoverageFactoryFinder.getGridCoverageFactory(null);
>
> GridCoverage2D slope = fac.create( "slope", processed, dem.getEnvelope()
> );
>
>
> Notes:
> - I think last time I went straight to JAI operations and used the
> threshold operation
> - I noticed ImageWorker had a AreaOfInterest construct that could be turned
> into a Java shape? Could we use that for a super fast raster to vector
> calculation? or is it likely to be just as processor intensive as our own?
>
> Jody
>
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
> lucky parental unit. See the prize list and enter to win:
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users