From 60f133d18345d9bd97723858bde4c3f41141b453 Mon Sep 17 00:00:00 2001 From: Gabriel Selzer Date: Thu, 7 Jun 2018 10:03:09 -0500 Subject: [PATCH 1/4] Create DefaultShadows Op WIP: Discuss usage of unit circle for shadows kernel --- .../imagej/ops/filter/FilterNamespace.java | 22 ++- .../ops/filter/shadow/DefaultShadows.java | 169 ++++++++++++++++++ src/main/templates/net/imagej/ops/Ops.list | 1 + 3 files changed, 188 insertions(+), 4 deletions(-) create mode 100644 src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java diff --git a/src/main/java/net/imagej/ops/filter/FilterNamespace.java b/src/main/java/net/imagej/ops/filter/FilterNamespace.java index 136eb763a1..527cec382b 100644 --- a/src/main/java/net/imagej/ops/filter/FilterNamespace.java +++ b/src/main/java/net/imagej/ops/filter/FilterNamespace.java @@ -6,13 +6,13 @@ * %% * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE @@ -136,7 +136,7 @@ public , O extends RealType> O addPoissonNoise( /** * Executes a bilateral filter on the given arguments. - * + * * @param in * @param out * @param sigmaR @@ -757,7 +757,7 @@ RandomAccessibleInterval dog(final RandomAccessibleInterval in, /** * Executes the "Frangi Vesselness" filter operation on the given arguments. - * + * * @param in - input image * @param out - output image * @param spacing - n-dimensional array indicating the physical distance @@ -1271,6 +1271,20 @@ public > IterableInterval sigma( return result; } + // -- Shadows + + /** Executes the "shadows" filter operation on the given arguments. */ + @OpMethod(op = net.imagej.ops.filter.shadow.DefaultShadows.class) + public > RandomAccessibleInterval shadows( + final RandomAccessibleInterval in, final double angle) + { + @SuppressWarnings("unchecked") + final RandomAccessibleInterval result = + (RandomAccessibleInterval) ops().run(Ops.Filter.Shadows.class, in, + angle); + return result; + } + // -- Sobel @OpMethod(op = net.imagej.ops.filter.sobel.SobelRAI.class) diff --git a/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java b/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java new file mode 100644 index 0000000000..ea1718d8e9 --- /dev/null +++ b/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java @@ -0,0 +1,169 @@ + +package net.imagej.ops.filter.shadow; + +import java.util.Arrays; + +import net.imagej.Extents; +import net.imagej.Position; +import net.imagej.ops.Ops; +import net.imagej.ops.special.function.AbstractUnaryFunctionOp; +import net.imglib2.Cursor; +import net.imglib2.FinalInterval; +import net.imglib2.RandomAccess; +import net.imglib2.RandomAccessible; +import net.imglib2.RandomAccessibleInterval; +import net.imglib2.algorithm.neighborhood.Neighborhood; +import net.imglib2.algorithm.neighborhood.RectangleNeighborhood; +import net.imglib2.algorithm.neighborhood.RectangleNeighborhoodFactory; +import net.imglib2.algorithm.neighborhood.RectangleShape.NeighborhoodsAccessible; +import net.imglib2.type.numeric.RealType; +import net.imglib2.util.Util; +import net.imglib2.view.Views; + +import org.scijava.plugin.Parameter; +import org.scijava.plugin.Plugin; + +@Plugin(type = Ops.Filter.Shadows.class) +public class DefaultShadows> extends + AbstractUnaryFunctionOp, RandomAccessibleInterval> + implements Ops.Filter.Shadows +{ + + static final double sqrt2 = Math.sqrt(2); + final double[] r = { sqrt2, 1, sqrt2, 1, 0, 1, sqrt2, 1, sqrt2 }; + static final double[] phi = { 0.75 * Math.PI, 0.5 * Math.PI, 0.25 * Math.PI, + Math.PI, 0, 0, 1.25 * Math.PI, 1.5 * Math.PI, 1.75 * Math.PI }; + static final double[] kernel = new double[9]; + double scale; + + @Parameter(min = "0", max = "2 * Math.PI") + private double theta; + + @Override + public RandomAccessibleInterval calculate( + final RandomAccessibleInterval input) + { + final RandomAccessibleInterval output = ops().copy().rai(input); + + final long[] planeDims = new long[input.numDimensions() - 2]; + for (int i = 0; i < planeDims.length; i++) + planeDims[i] = input.dimension(i + 2); + final Extents extents = new Extents(planeDims); + final Position planePos = extents.createPosition(); + if (planeDims.length == 0) { + computePlanar(planePos, input, output); + } + else { + while (planePos.hasNext()) { + planePos.fwd(); + computePlanar(planePos, input, output); + } + + } + System.out.println("done"); + + return output; + + } + + private void computePlanar(final Position planePos, + final RandomAccessibleInterval input, + final RandomAccessibleInterval output) + { + + // CONSTRUCT KERNEL + + // build x vector arrays + final double[] x1 = new double[9]; + for (int i = 0; i < x1.length; i++) { + x1[i] = Math.cos(phi[i]); + } + System.out.println("Cos: " + Arrays.toString(x1)); + final double[] x2 = new double[9]; + for (int i = 0; i < x2.length; i++) { + x2[i] = Math.sin(phi[i]); + } + System.out.println("Sin: " + Arrays.toString(x2)); + + // angle vector + final double cosTheta = Math.cos(theta); + final double sinTheta = Math.sin(theta); + + System.out.println("Theta = (" + cosTheta + ", " + sinTheta + ")"); + + // kernel equal to unit vector of (x dot angle) + for (int i = 0; i < kernel.length; i++) { + kernel[i] = 2 * (x1[i] * cosTheta + x2[i] * sinTheta); + } + // N.B. the rules of the surrounding pixels do not apply to the center pixel + kernel[4] = 1; + + System.out.println(Arrays.toString(kernel)); + + scale = 0; + for (final double d : kernel) + scale += d; + if (scale == 0) scale = 1; // TODO is this necessary? + + final T type = Util.getTypeFromInterval(input); + + final long[] imageDims = new long[input.numDimensions()]; + input.dimensions(imageDims); + + // create all objects needed for NeighborhoodsAccessible + RandomAccessibleInterval slicedInput = ops().copy().rai(input); + for (int i = planePos.numDimensions() - 1; i >= 0; i--) { + slicedInput = Views.hyperSlice(slicedInput, input.numDimensions() - 1 - i, + planePos.getLongPosition(i)); + } + + final RandomAccessible refactoredInput = Views.extendMirrorSingle( + slicedInput); + final RectangleNeighborhoodFactory factory = RectangleNeighborhood + .factory(); + final FinalInterval neighborhoodSpan = new FinalInterval(new long[] { -1, + -1 }, new long[] { 1, 1 }); + + final NeighborhoodsAccessible neighborhoods = + new NeighborhoodsAccessible<>(refactoredInput, neighborhoodSpan, factory); + + // create cursors and random accesses for loop. + final Cursor cursor = Views.iterable(input).localizingCursor(); + final RandomAccess outputRA = output.randomAccess(); + for (int i = 0; i < planePos.numDimensions(); i++) { + outputRA.setPosition(planePos.getLongPosition(i), i + 2); + } + final RandomAccess> neighborhoodsRA = neighborhoods + .randomAccess(); + + int algorithmIndex = 0; + double sum; + final double[] n = new double[9]; + while (cursor.hasNext()) { + cursor.fwd(); + neighborhoodsRA.setPosition(cursor); + final Neighborhood current = neighborhoodsRA.get(); + final Cursor neighborhoodCursor = current.cursor(); + + algorithmIndex = 0; + sum = 0; + while (algorithmIndex < n.length) { + neighborhoodCursor.fwd(); + n[algorithmIndex++] = neighborhoodCursor.get().getRealDouble(); + } + + for (int i = 0; i < kernel.length; i++) { + sum += kernel[i] * n[i]; + } + + double value = sum / scale; + + outputRA.setPosition(cursor.getLongPosition(0), 0); + outputRA.setPosition(cursor.getLongPosition(1), 1); + if (value > type.getMaxValue()) value = type.getMaxValue(); + if (value < type.getMinValue()) value = type.getMinValue(); + outputRA.get().setReal(value); + } + } + +} diff --git a/src/main/templates/net/imagej/ops/Ops.list b/src/main/templates/net/imagej/ops/Ops.list index e38e8c72f6..28e471a13e 100644 --- a/src/main/templates/net/imagej/ops/Ops.list +++ b/src/main/templates/net/imagej/ops/Ops.list @@ -122,6 +122,7 @@ namespaces = ``` [name: "paddingIntervalCentered", iface: "PaddingIntervalCentered"], [name: "paddingIntervalOrigin", iface: "PaddingIntervalOrigin"], [name: "tubeness", iface: "Tubeness"], + [name: "shadows", iface: "Shadows"], [name: "sigma", iface: "Sigma", aliases: ["sigmaFilter", "filterSigma"]], [name: "sobel", iface: "Sobel"], [name: "variance", iface: "Variance", aliases: ["varianceFilter", "filterVariance", "var", "varFilter", "filterVar"]], From 96daac5f8889f46be48c28bc41c48d28619d6875 Mon Sep 17 00:00:00 2001 From: Gabriel Selzer Date: Wed, 13 Jun 2018 16:26:45 -0500 Subject: [PATCH 2/4] Remove cos and sin LUT generation These can just be generated beforehand --- .../ops/filter/shadow/DefaultShadows.java | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java b/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java index ea1718d8e9..bb26e7800d 100644 --- a/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java +++ b/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java @@ -29,10 +29,15 @@ public class DefaultShadows> extends implements Ops.Filter.Shadows { - static final double sqrt2 = Math.sqrt(2); - final double[] r = { sqrt2, 1, sqrt2, 1, 0, 1, sqrt2, 1, sqrt2 }; - static final double[] phi = { 0.75 * Math.PI, 0.5 * Math.PI, 0.25 * Math.PI, - Math.PI, 0, 0, 1.25 * Math.PI, 1.5 * Math.PI, 1.75 * Math.PI }; + // cos(theta) and sin(theta) LUTs used for 3x3 neighborhood calculations where + // index 4 is the center of the neighborhood and theta increases around the + // edges of the neighborhood (note that theta does not increase as the index + // increase but instead increases as if this array was mapped to a 3x3 + // square, then theta increases counterclockwise). + static final double[] cos = { -0.7071067811865475, 0, 0.7071067811865476, + -1.0, 0, 1.0, -0.7071067811865477, 0, 0.7071067811865474 }; + static final double[] sin = { 0.7071067811865476, 1.0, 0.7071067811865475, 0, + 0.0, 0.0, -0.7071067811865475, -1.0, -0.7071067811865477 }; static final double[] kernel = new double[9]; double scale; @@ -71,20 +76,6 @@ private void computePlanar(final Position planePos, final RandomAccessibleInterval output) { - // CONSTRUCT KERNEL - - // build x vector arrays - final double[] x1 = new double[9]; - for (int i = 0; i < x1.length; i++) { - x1[i] = Math.cos(phi[i]); - } - System.out.println("Cos: " + Arrays.toString(x1)); - final double[] x2 = new double[9]; - for (int i = 0; i < x2.length; i++) { - x2[i] = Math.sin(phi[i]); - } - System.out.println("Sin: " + Arrays.toString(x2)); - // angle vector final double cosTheta = Math.cos(theta); final double sinTheta = Math.sin(theta); @@ -93,7 +84,7 @@ private void computePlanar(final Position planePos, // kernel equal to unit vector of (x dot angle) for (int i = 0; i < kernel.length; i++) { - kernel[i] = 2 * (x1[i] * cosTheta + x2[i] * sinTheta); + kernel[i] = 2 * (cos[i] * cosTheta + sin[i] * sinTheta); } // N.B. the rules of the surrounding pixels do not apply to the center pixel kernel[4] = 1; From bf6e56ab9b2094cbb8e8a2362449f1062d098945 Mon Sep 17 00:00:00 2001 From: Gabriel Selzer Date: Thu, 14 Jun 2018 09:20:46 -0500 Subject: [PATCH 3/4] DefaultShadows: cleanup Removed testing printlines and imports --- .../java/net/imagej/ops/filter/shadow/DefaultShadows.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java b/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java index bb26e7800d..5decb25cce 100644 --- a/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java +++ b/src/main/java/net/imagej/ops/filter/shadow/DefaultShadows.java @@ -1,8 +1,6 @@ package net.imagej.ops.filter.shadow; -import java.util.Arrays; - import net.imagej.Extents; import net.imagej.Position; import net.imagej.ops.Ops; @@ -65,7 +63,6 @@ public RandomAccessibleInterval calculate( } } - System.out.println("done"); return output; @@ -80,8 +77,6 @@ private void computePlanar(final Position planePos, final double cosTheta = Math.cos(theta); final double sinTheta = Math.sin(theta); - System.out.println("Theta = (" + cosTheta + ", " + sinTheta + ")"); - // kernel equal to unit vector of (x dot angle) for (int i = 0; i < kernel.length; i++) { kernel[i] = 2 * (cos[i] * cosTheta + sin[i] * sinTheta); @@ -89,8 +84,6 @@ private void computePlanar(final Position planePos, // N.B. the rules of the surrounding pixels do not apply to the center pixel kernel[4] = 1; - System.out.println(Arrays.toString(kernel)); - scale = 0; for (final double d : kernel) scale += d; From 5f0d499e47a1e3755aa0fe6d57dd958e7aee54e0 Mon Sep 17 00:00:00 2001 From: Gabriel Selzer Date: Thu, 28 Jun 2018 14:17:04 -0500 Subject: [PATCH 4/4] create Shadows Test --- pom.xml | 7 +- .../filter/shadows/DefaultShadowsTest.java | 121 ++++++++++++++++++ .../filter/shadows/ExpectedShadowsNorth.tif | Bin 0 -> 65684 bytes 3 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 src/test/java/net/imagej/ops/filter/shadows/DefaultShadowsTest.java create mode 100644 src/test/resources/net/imagej/ops/filter/shadows/ExpectedShadowsNorth.tif diff --git a/pom.xml b/pom.xml index 994ccfcd24..c8b65480a5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.scijava pom-scijava - 20.0.0 + 22.4.0 @@ -293,5 +293,10 @@ imglib2-ij test + + org.scijava + scijava-io-http + test + diff --git a/src/test/java/net/imagej/ops/filter/shadows/DefaultShadowsTest.java b/src/test/java/net/imagej/ops/filter/shadows/DefaultShadowsTest.java new file mode 100644 index 0000000000..9dff62b3d7 --- /dev/null +++ b/src/test/java/net/imagej/ops/filter/shadows/DefaultShadowsTest.java @@ -0,0 +1,121 @@ +/* + * #%L + * ImageJ software for multidimensional image processing and analysis. + * %% + * Copyright (C) 2014 - 2018 ImageJ developers. + * %% + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * #L% + */ + +package net.imagej.ops.filter.shadows; + +import io.scif.SCIFIOService; +import io.scif.services.DatasetIOService; + +import java.io.File; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.concurrent.ExecutionException; + +import net.imagej.Dataset; +import net.imagej.ops.AbstractOpTest; +import net.imagej.ops.OpService; +import net.imagej.ops.filter.shadow.DefaultShadows; +import net.imglib2.img.Img; +import net.imglib2.type.numeric.real.FloatType; + +import org.junit.Before; +import org.junit.Test; +import org.scijava.Context; +import org.scijava.app.StatusService; +import org.scijava.download.DiskLocationCache; +import org.scijava.download.Download; +import org.scijava.download.DownloadService; +import org.scijava.io.IOService; +import org.scijava.io.http.HTTPLocation; +import org.scijava.io.location.FileLocation; + +/** + * Tests for {@link DefaultShadows} + * + * @author Gabe Selzer + */ +public class DefaultShadowsTest extends AbstractOpTest { + + private Dataset input; + + @Override + protected Context createContext() { + return new Context(OpService.class, IOService.class, DownloadService.class, + SCIFIOService.class, StatusService.class); + } + + @Before + public void init() throws IOException, InterruptedException, + ExecutionException, URISyntaxException + { + // URL of test image + final URL imageSrc = new URL("http://imagej.net/images/abe.tif"); + + // FileLocation that we want to store this image in. + final File destFile = File.createTempFile(getClass().getName(), ".tif"); + final FileLocation inputDest = new FileLocation(destFile); + + downloadOnce(imageSrc.toURI(), inputDest); + + final String srcPath = inputDest.getFile().getAbsolutePath(); + final DatasetIOService dio = context.service(DatasetIOService.class); + input = dio.open(srcPath); + } + + // move to DownloadService + public void downloadOnce(final URI srcURI, final FileLocation inputDest) + throws URISyntaxException, InterruptedException, ExecutionException + { + final DownloadService ds = context.service(DownloadService.class); + final DiskLocationCache cache = new DiskLocationCache(); + cache.getBaseDirectory().mkdirs(); + + final HTTPLocation inputSrc = new HTTPLocation(srcURI); + + // download the data from the URI to inputDest. Once we are done the method + // calling downloadOnce can access the File from the FileLocation passed + // through. + final Download download = ds.download(inputSrc, inputDest, cache); + download.task().waitFor(); + } + + @Test + public void testRegression() throws IOException { + final IOService io = context.getService(IOService.class); + final double north = Math.PI / 2; + final Img actualOutput = (Img) ops.run( + "filter.shadows", input, north); + final Img expectedOutput = (Img) io.open( + "src/test/resources/net/imagej/ops/filter/shadows/ExpectedShadowsNorth.tif"); + assertIterationsEqual(actualOutput, expectedOutput); + } + +} diff --git a/src/test/resources/net/imagej/ops/filter/shadows/ExpectedShadowsNorth.tif b/src/test/resources/net/imagej/ops/filter/shadows/ExpectedShadowsNorth.tif new file mode 100644 index 0000000000000000000000000000000000000000..6b8aa226f54868acbddcaa808ef4061e50f85bdc GIT binary patch literal 65684 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