private void step() { activeRuntime.setSourceImage(WORLD_NAME, curWorld); activeRuntime.setDestinationImage(NEXT_WORLD_NAME, nextWorld); activeRuntime.evaluateAll(null); TiledImage temp = curWorld; curWorld = nextWorld; nextWorld = temp; EventQueue.invokeLater(new Runnable() { public void run() { imagePane.setImage(curWorld); } }); }
@Test public void mappedSrcValue() throws Exception { String src = "dest = src[10];"; RenderedImage srcImg = createSequenceImage(); Evaluator evaluator = new Evaluator() { public double eval(double val) { return val; } }; imageParams = new HashMap<>(); imageParams.put("dest", Jiffle.ImageRole.DEST); imageParams.put("src", Jiffle.ImageRole.SOURCE); // test the direct runtime Jiffle jiffle = new Jiffle(src, imageParams); directRuntimeInstance = jiffle.getRuntimeInstance(); directRuntimeInstance.setSourceImage("src", srcImg); // map band 10 to band 0 directRuntimeInstance.setSourceImageBandTransform("src", (x, y, scriptBand) -> 0); TiledImage destImg = ImageUtilities.createConstantImage( srcImg.getMinX(), srcImg.getMinY(), srcImg.getWidth(), srcImg.getHeight(), 0.0); directRuntimeInstance.setDestinationImage("dest", destImg); directRuntimeInstance.evaluateAll(null); assertImage(srcImg, destImg, evaluator); }
switch (imageParams.get(var)) { case SOURCE: runtime.setSourceImage(var, img, transform); break;
switch (imageParams.get(var)) { case SOURCE: runtime.setSourceImage(var, img, transform); break;
protected void testDirectRuntime(RenderedImage srcImg, JiffleDirectRuntime runtime, Evaluator evaluator) { runtime.setSourceImage("src", srcImg); TiledImage destImg = ImageUtilities.createConstantImage( srcImg.getMinX(), srcImg.getMinY(), srcImg.getWidth(), srcImg.getHeight(), 0.0); runtime.setDestinationImage("dest", destImg); runtime.evaluateAll(nullListener); assertImage(srcImg, destImg, evaluator); }
JiffleDirectRuntime jr = jiffle.getRuntimeInstance(); jr.setSourceImage("in1", inImg1); jr.setSourceImage("in2", inImg2); jr.setDestinationImage("out", outImg); jr.evaluateAll(null);
@Test public void countValues() throws Exception { System.out.println(" counting pixels that meet a condition"); final int testVal = 10; String script = String.format( "images { src=read; } \n" + "init { count = 0; } \n" + "count += src > %d;", testVal); TestData testData = createTestData(testVal); Jiffle jiffle = getCompiledJiffle(script); JiffleDirectRuntime runtime = jiffle.getRuntimeInstance(); runtime.setSourceImage("src", testData.image); runtime.evaluateAll(null); Double count = runtime.getVar("count"); assertNotNull(count); assertEquals(testData.expectedCount, count.intValue()); }
@Test public void noDestImage() throws Exception { System.out.println(" destination-less script with images block"); String script = String.format( "images { inimage = read; } \n" + "init { n = 0; } \n" + "n += inimage >= %d;", NUM_PIXELS - 5); Jiffle jiffle = new Jiffle(); jiffle.setScript(script); jiffle.compile(); directRuntimeInstance = jiffle.getRuntimeInstance(); directRuntimeInstance.setSourceImage("inimage", createSequenceImage()); directRuntimeInstance.evaluateAll(null); Double var = directRuntimeInstance.getVar("n"); assertNotNull(var); assertEquals(5, var.intValue()); }
runtime.setSourceImage("src", srcImg, srcTr); runtime.setDestinationImage("dest", destImg);
private void assertScriptResult(String script, Evaluator e, String srcVarName, String destVarName) throws Exception { RenderedImage srcImg = null; WritableRenderedImage destImg = null; Jiffle jiffle = new Jiffle(); jiffle.setScript(script); jiffle.compile(); directRuntimeInstance = (JiffleDirectRuntime) jiffle.getRuntimeInstance(); if (srcVarName != null && srcVarName.length() > 0) { srcImg = createSequenceImage(); directRuntimeInstance.setSourceImage(srcVarName, srcImg); } if (destVarName != null && destVarName.length() > 0) { destImg = ImageUtilities.createConstantImage(IMG_WIDTH, IMG_WIDTH, 0d); directRuntimeInstance.setDestinationImage(destVarName, destImg); } directRuntimeInstance.evaluateAll(null); assertImage(srcImg, destImg, e); }
private void testScript(String script, int numSrcBands, Evaluator evaluator) throws Exception { imageParams = new HashMap<>(); imageParams.put("dest", Jiffle.ImageRole.DEST); imageParams.put("src", Jiffle.ImageRole.SOURCE); Jiffle jiffle = new Jiffle(script, imageParams); JiffleDirectRuntime runtime = jiffle.getRuntimeInstance(); TiledImage srcImg = createSequenceImage(numSrcBands); runtime.setSourceImage("src", srcImg); TiledImage destImg = ImageUtilities.createConstantImage(WIDTH, WIDTH, 0d); runtime.setDestinationImage("dest", destImg); runtime.evaluateAll(null); double[] values = new double[numSrcBands]; for (int y = 0; y < WIDTH; y++) { for (int x = 0; x < WIDTH; x++) { for (int b = 0; b < numSrcBands; b++) { values[b] = srcImg.getSampleDouble(x, y, b); } assertEquals(evaluator.eval(values), destImg.getSampleDouble(x, y, 0), TOL); } } }
runtime.setSourceImage("src", srcImg, tr); WritableRenderedImage destImg = ImageUtilities.createConstantImage(IMG_WIDTH, IMG_WIDTH, 0d); runtime.setDestinationImage("dest", destImg, tr);
runtime.setDefaultTransform(tr); runtime.setSourceImage("src", srcImg); runtime.setDestinationImage("dest", destImg); runtime.evaluateAll(null);
@Test public void srcValueWithROI() throws Exception { String src = "dest = src;"; TiledImage srcImg = createSequenceImage(); RenderedImage triangleImage = createTriangleImage(); srcImg.setProperty("ROI", new ROI(triangleImage)); Evaluator evaluator = new Evaluator() { public double eval(double val) { return x > y ? val : Double.NaN; } }; imageParams = new HashMap<>(); imageParams.put("dest", Jiffle.ImageRole.DEST); imageParams.put("src", Jiffle.ImageRole.SOURCE); // test the direct runtime Jiffle jiffle = new Jiffle(src, imageParams); directRuntimeInstance = jiffle.getRuntimeInstance(); directRuntimeInstance.setSourceImage("src", srcImg); TiledImage destImg = ImageUtilities.createConstantImage( srcImg.getMinX(), srcImg.getMinY(), srcImg.getWidth(), srcImg.getHeight(), 0.0); directRuntimeInstance.setDestinationImage("dest", destImg); directRuntimeInstance.evaluateAll(null); assertImage(srcImg, destImg, evaluator); }
WritableRenderedImage dest = ImageUtilities.createConstantImage(IMG_WIDTH, IMG_WIDTH, 0d); runtime.setSourceImage("src", src); runtime.setDestinationImage("dest", dest); runtime.evaluateAll(null);
WritableRenderedImage dest = ImageUtilities.createConstantImage(IMG_WIDTH, IMG_WIDTH, 0d); runtime.setSourceImage("src", src); runtime.setDestinationImage("dest", dest); runtime.evaluateAll(null);