private void isFullyInvalid( List<Polygon> geometriesList, RenderedImage inputRI, RenderingHints localHints) throws Exception { if (geometriesList.size() == 0) { // Must be a fully "invalid-Pixels" image, or an error occurred ImageWorker w = new ImageWorker(inputRI); final double[] extrema = w.getMinimums(); if (!areEqual(extrema[0], INVALID_PIXEL_D)) { Exception ex = new Exception("Unknown MarchingSquares processing error"); ImageAnalysisResultThdLocal.set(ex); throw ex; } fullyInvalid = true; } } }
/** * Checks the label and the obstacle image do not overlap * * @param labels * @param obstacle */ private void checkNoIntersection(BufferedImage labels, BufferedImage obstacle) { ImageWorker extrema = intersectionExtrema(labels, obstacle); // if we have any intersection the result will be 0 double[] minimum = extrema.getMinimums(); // (double[]) extrema.getProperty("minimum"); assertEquals(1.0, minimum[0], 0.0); }
final double[] minimum = worker.getMinimums(); final double[] maximum = worker.getMaximums();
@Override RenderedImage process( ImageWorker inputWorker, Hints hints, Map<String, Expression> parameters) { RenderedImage inputImage = inputWorker.getRenderedImage(); assert inputImage.getSampleModel().getNumBands() == 1 : inputImage; final int dataType = inputImage.getSampleModel().getDataType(); if (dataType == DataBuffer.TYPE_BYTE) { // // Optimisation for byte images m we use lookup // LookupTable table = createByteLookupTable(EMPTY_MAP); inputWorker.lookup(table); return inputWorker.getRenderedImage(); } // General case // define a specific piecewise for the logarithm // // STEP 1 do the extrema // inputWorker.removeRenderingHints(); final double[] minimum = inputWorker.getMinimums(); final double[] maximum = inputWorker.getMaximums(); // // STEP 2 use generic piecewise // final PiecewiseTransform1D<DefaultPiecewiseTransform1DElement> transform = generatePiecewise(setMinMaxParams(minimum[0], maximum[0])); inputWorker.piecewise(transform, Integer.valueOf(0)); return inputWorker.getRenderedImage(); }
@Override RenderedImage process( ImageWorker inputWorker, Hints hints, Map<String, Expression> parameters) { RenderedImage inputImage = inputWorker.getRenderedImage(); assert inputImage.getSampleModel().getNumBands() == 1 : inputImage; final int dataType = inputImage.getSampleModel().getDataType(); if (dataType == DataBuffer.TYPE_BYTE) { // // Optimisation for byte images // LookupTable table = createByteLookupTable(EMPTY_MAP); inputWorker.lookup(table); return inputWorker.getRenderedImage(); } // General case, we use the piecewise1D transform // // STEP 1 do the extrema // inputWorker.removeRenderingHints(); final double[] minimum = inputWorker.getMinimums(); final double[] maximum = inputWorker.getMaximums(); // // STEP 2 use generic piecewise // final PiecewiseTransform1D<DefaultPiecewiseTransform1DElement> transform = generatePiecewise(setMinMaxParams(minimum[0], maximum[0])); inputWorker.piecewise(transform, Integer.valueOf(0)); return inputWorker.getRenderedImage(); }
inputWorker.removeRenderingHints(); RenderedImage inputImage = inputWorker.getRenderedImage(); extrema[0] = inputWorker.getMinimums(); extrema[1] = inputWorker.getMaximums(); final int numBands = extrema[0].length;
256); assertEquals(1, image.getSampleModel().getNumBands()); assertEquals(255, new ImageWorker(image).getMinimums()[0], 0d);
256); assertEquals(1, image.getSampleModel().getNumBands()); assertEquals(255, new ImageWorker(image).getMinimums()[0], 0d); 256); assertEquals(1, image.getSampleModel().getNumBands()); assertEquals(0, new ImageWorker(image).getMinimums()[0], 0d);
@Test public void testExternalGraphicNoObstacle() throws Exception { BufferedImage labels = render(sources("roads", "points"), styles("label", "grinNoObstacle")); BufferedImage points = render(sources("roads", "points"), styles(null, "grinNoObstacle")); ImageWorker extrema = intersectionExtrema(labels, points); // we should have intersections, thus min should be 1 double[] minimum = extrema.getMinimums(); // (double[]) extrema.getProperty("minimum"); assertEquals(0.0, minimum[0], 1.0); }
256); assertEquals(1, image.getSampleModel().getNumBands()); assertEquals(255, new ImageWorker(image).getMinimums()[0], 0d); ImageUtilities.disposeImage(image);
RendererBaseTest.showRender("Transformation with null input", renderer, TIME, re); double[] minimums = new ImageWorker(image).getMinimums(); assertEquals(255, minimums[0], 0d); assertEquals(255, minimums[1], 0d);
w.getMinimums(); return w;
/** * Collects stats for future dataPacking from the provided coverage and update the statistics. * * @param coverage The coverage on which the statistics will be collected * @param statsList The list of statistic beans, one per image band */ protected void collectStats(GridCoverage2D coverage, List<DataPacking.DataStats> statsList) { // It will internally take care of noData ImageWorker iw = new ImageWorker(coverage.getRenderedImage()); double[] minimum = iw.getMinimums(); double[] maximum = iw.getMaximums(); int count = Math.min(minimum.length, statsList.size()); for (int i = 0; i < count; i++) { DataPacking.DataStats stats = statsList.get(i); double min = minimum[i]; double max = maximum[i]; stats.update(min, max); } }
final double[] minimum = w.getMinimums(); final double[] maximum = w.getMaximums();
/** * Collects stats for future dataPacking from the provided coverage and update * the statistics. * * @param coverage * @param statsParams */ private void collectStats(GridCoverage2D coverage, double[] statsParams) { // It will internally take care of noData ImageWorker iw = new ImageWorker(coverage.getRenderedImage()); double[] minimum = iw.getMinimums(); double[] maximum = iw.getMaximums(); double min = minimum[0]; double max = maximum[0]; stats.update(min,max); }
double min[] = worker.getMinimums(); double max[] = worker.getMaximums(); min = worker.getMinimums(); max = worker.getMaximums(); min = worker.getMinimums(); max = worker.getMaximums(); worker = new ImageWorker(output.getRenderedImage()); worker.setNoData(RangeFactory.create(0, 0)); min = worker.getMinimums(); max = worker.getMaximums(); worker = new ImageWorker(output.getRenderedImage()); worker.setNoData(RangeFactory.create(0, 0)); min = worker.getMinimums(); max = worker.getMaximums(); min = worker.getMinimums(); max = worker.getMaximums(); min = worker.getMinimums(); max = worker.getMaximums(); min = worker.getMinimums(); max = worker.getMaximums(); output = (GridCoverage2D) rsh_StyleBuilder.getOutput();