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>