Skip to content

Commit 8cc6a44

Browse files
committed
Zernike Features: change output type
These types should always be some sort of decimal. We do not want to allow the user to pass an integer-based type of sorts since then the output information will be lost.
1 parent 1e0ffcd commit 8cc6a44

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

src/main/java/net/imagej/ops/features/zernike/DefaultMagnitudeFeature.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import net.imagej.ops.features.zernike.helper.ZernikeMoment;
3232
import net.imglib2.IterableInterval;
3333
import net.imglib2.type.numeric.RealType;
34+
import net.imglib2.type.numeric.real.DoubleType;
3435

3536
import org.scijava.ops.OpDependency;
3637
import org.scijava.ops.core.Op;
@@ -48,22 +49,20 @@
4849
*
4950
* @param <T>
5051
* Input Type
51-
* @param <O>
52-
* Output Type
5352
*/
5453
@Plugin(type = Op.class, name = "features.zernike.magnitude")
5554
@Parameter(key = "input")
5655
@Parameter(key = "order")
5756
@Parameter(key = "repetition")
5857
@Parameter(key = "output", itemIO = ItemIO.BOTH)
59-
public class DefaultMagnitudeFeature<T extends RealType<T>, O extends RealType<O>>
60-
implements Computers.Arity3<IterableInterval<T>, Integer, Integer, O> {
58+
public class DefaultMagnitudeFeature<T extends RealType<T>>
59+
implements Computers.Arity3<IterableInterval<T>, Integer, Integer, DoubleType> {
6160

6261
@OpDependency(name = "features.zernike.computer")
6362
private Functions.Arity3<IterableInterval<T>, Integer, Integer, ZernikeMoment> zernikeOp;
6463

6564
@Override
66-
public void compute(IterableInterval<T> input, Integer order, Integer repetition, O output) {
65+
public void compute(IterableInterval<T> input, Integer order, Integer repetition, DoubleType output) {
6766
if (input.numDimensions() != 2)
6867
throw new IllegalArgumentException("Only 2 dimensional inputs allowed!");
6968
output.setReal(zernikeOp.apply(input, order, repetition).getMagnitude());

src/main/java/net/imagej/ops/features/zernike/DefaultPhaseFeature.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import net.imagej.ops.features.zernike.helper.ZernikeMoment;
3232
import net.imglib2.IterableInterval;
3333
import net.imglib2.type.numeric.RealType;
34+
import net.imglib2.type.numeric.real.DoubleType;
3435

3536
import org.scijava.ops.OpDependency;
3637
import org.scijava.ops.core.Op;
@@ -56,14 +57,14 @@
5657
@Parameter(key = "order")
5758
@Parameter(key = "repetition")
5859
@Parameter(key = "output", itemIO = ItemIO.BOTH)
59-
public class DefaultPhaseFeature<T extends RealType<T>, O extends RealType<O>>
60-
implements Computers.Arity3<IterableInterval<T>, Integer, Integer, O> {
60+
public class DefaultPhaseFeature<T extends RealType<T>>
61+
implements Computers.Arity3<IterableInterval<T>, Integer, Integer, DoubleType> {
6162

6263
@OpDependency(name = "features.zernike.computer")
6364
private Functions.Arity3<IterableInterval<T>, Integer, Integer, ZernikeMoment> zernikeOp;
6465

6566
@Override
66-
public void compute(IterableInterval<T> input, Integer order, Integer repetition, O output) {
67+
public void compute(IterableInterval<T> input, Integer order, Integer repetition, DoubleType output) {
6768
if (input.numDimensions() != 2)
6869
throw new IllegalArgumentException("Only 2 dimensional inputs allowed!");
6970
output.setReal(zernikeOp.apply(input, order, repetition).getPhase());

0 commit comments

Comments
 (0)