%classpath config resolver scijava.public https://maven.scijava.org/content/groups/public %classpath add mvn net.imagej imagej 2.0.0-rc-71 ij = new net.imagej.ImageJ() "ImageJ v${ij.getVersion()} is ready to go." import net.imglib2.IterableInterval // Create a tiny image. image = ij.op().run("create.img", [5, 3]) println("The image is a " + image.getClass().getName()) println("image instanceof IterableInterval? " + (image instanceof IterableInterval)) println("Each sample is a " + image.firstElement().getClass().getName()) // Populate it with a diagonal gradient. ij.op().image().equation(image, "p[0]+p[1]") // Iterate over the image samples! print("Sample values =") for (v in image) print(" " + v) println() print("Samples by position:") c = image.localizingCursor() while (c.hasNext()) { v = c.next() xPos = c.getLongPosition(0) yPos = c.getLongPosition(1) if (xPos == 0) println() print("\t(" + xPos + ", " + yPos + ") = " + v) } // Create an array image and a cell (2x2x2) image. import net.imglib2.img.array.ArrayImgs import net.imglib2.img.cell.CellImgFactory long[] dims = [4, 2, 2] arrayImg = ArrayImgs.unsignedBytes(dims) cellImg = new CellImgFactory(2).create(dims, arrayImg.firstElement()) def printPositions(ii, width) { c = ii.localizingCursor() col = 0 while (c.hasNext()) { v = c.next() xPos = c.getLongPosition(0) yPos = c.getLongPosition(1) zPos = c.getLongPosition(2) print("\t(" + xPos + ", " + yPos + ", " + zPos + ")") if (++col == width) { col = 0; println() } } println() } println() println("Array image iteration order =") printPositions(arrayImg, 4) println("Cell image iteration order =") printPositions(cellImg, 4) import net.imglib2.RandomAccessibleInterval import net.imglib2.img.array.ArrayImgs import net.imglib2.img.cell.CellImgFactory import net.imglib2.type.numeric.integer.UnsignedByteType; import net.imglib2.type.numeric.real.DoubleType; // create array image and cell image long[] dims = [128,96] arrayImg = ArrayImgs.unsignedBytes(dims); cellImg = new CellImgFactory(1).create(dims, arrayImg.firstElement()) // is the image RandomAccessible println("Array image instanceof RandomAccessible? " + (arrayImg instanceof RandomAccessibleInterval)) println("Cell image instanceof RandomAccessible? " + (cellImg instanceof RandomAccessibleInterval)) // start drawing def drawimage(image){ ra = image.randomAccess() ra.setPosition(15,0) for (y in 15..45) { ra.setPosition(y, 1) UnsignedByteType t = ra.get() t.set(255) } ra.setPosition(15,1) for (x in 0..cellImg.dimension(0) - 1){ ra.setPosition(x, 0) UnsignedByteType t = ra.get() t.set(255) } ra.setPosition(112, 0) for (y in 15..45) { ra.setPosition(y, 1) UnsignedByteType t = ra.get() t.set(255) } ra.setPosition(80, 1) for (x in 57..71){ ra.setPosition(x, 0) UnsignedByteType t = ra.get() t.set(255) } } drawimage(arrayImg) drawimage(cellImg) ij.notebook().display(['ArrayImg': arrayImg,'CellImg': cellImg])