diff --git a/src/main/java/fr/pasteur/ida/zellige/utils/LocalMaximumDetection.java b/src/main/java/fr/pasteur/ida/zellige/utils/LocalMaximumDetection.java index 641bfcf6a5ab7b4186bea3a4e5e384f7fef1ce73..c1b79b498d908c799e316618f122a47b9b25dfa6 100644 --- a/src/main/java/fr/pasteur/ida/zellige/utils/LocalMaximumDetection.java +++ b/src/main/java/fr/pasteur/ida/zellige/utils/LocalMaximumDetection.java @@ -6,6 +6,7 @@ import net.imglib2.RandomAccess; import net.imglib2.RandomAccessibleInterval; import net.imglib2.img.Img; import net.imglib2.img.ImgFactory; +import net.imglib2.img.display.imagej.ImageJFunctions; import net.imglib2.type.NativeType; import net.imglib2.type.numeric.RealType; import net.imglib2.view.IntervalView; @@ -79,7 +80,8 @@ public class LocalMaximumDetection YZProjection.dimension( 1 ) + 1 ); // Partial derivative computation */ Utils.derivative( YZProjection, partialDerivative ); - getListOfLocalMaximum( maximums, partialDerivative, x ); +// getListOfLocalMaximum( maximums, partialDerivative, x ); + getListOfLocalMaximum( maximums, partialDerivative,YZProjection, x ); } @@ -113,6 +115,34 @@ public class LocalMaximumDetection } } + private static < T extends RealType< T > & NativeType< T > > void + getListOfLocalMaximum + ( RandomAccessibleInterval< T > notMax, + RandomAccessibleInterval< T > partialDerivative, + RandomAccessibleInterval <T> original, + int x + ) + { + RandomAccess< T > derivativeAccess = partialDerivative.randomAccess(); + RandomAccess< T > maxAccess = notMax.randomAccess(); + RandomAccess< T > oriAccess = original.randomAccess(); + + for ( int y = 0; y <= notMax.dimension( 1 ) - 1; y++ ) + { + derivativeAccess.setPosition( y, 0 ); + for ( int z = 0; z <= notMax.dimension( 2 ) - 1; z++ ) + { + if ( isALocalMaximum( derivativeAccess, z ) ) + { + Utils.setPosition( oriAccess, y, z ); + Utils.setPosition( maxAccess, x, y, z ); + maxAccess.get().set( oriAccess.get() ); +// maxAccess.get().setOne(); + } + } + } + } + /** * Method to find if a pixel of a given stack is a local maximum. * <p>