From 6c18d45c84a2fb2e97ec7a5b19e0fa84d16f6494 Mon Sep 17 00:00:00 2001 From: ctrebeau <ctrebeau@pasteur.fr> Date: Tue, 13 Oct 2020 17:29:07 +0200 Subject: [PATCH] bug fix: possibility to compute a thresholding on N dimensional images --- .../java/fr/pasteur/ida/zellige/utils/Otsu.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/fr/pasteur/ida/zellige/utils/Otsu.java b/src/main/java/fr/pasteur/ida/zellige/utils/Otsu.java index f70bae33..c1032b1f 100644 --- a/src/main/java/fr/pasteur/ida/zellige/utils/Otsu.java +++ b/src/main/java/fr/pasteur/ida/zellige/utils/Otsu.java @@ -2,11 +2,11 @@ package fr.pasteur.ida.zellige.utils; import net.imglib2.Cursor; import net.imglib2.IterableInterval; -import net.imglib2.img.Img; import net.imglib2.type.NativeType; import net.imglib2.type.numeric.RealType; -import java.util.*; +import java.util.Map; +import java.util.TreeMap; public class Otsu { @@ -133,7 +133,7 @@ public class Otsu while ( cursor.hasNext() ) { cursor.fwd(); - final Double value = cursor.get().getRealDouble(); + final double value = cursor.get().getRealDouble(); Integer j = hm.get(value ); hm.put( value, ( j == null ) ? 1 : j + 1 ); @@ -157,7 +157,12 @@ public class Otsu } // Setting of mean and number of pixels - int N = ( int ) ( source.dimension( 0 ) * source.dimension( 1 ) * source.dimension( 2 ) ); + + int N = 1; + for(int d = 0 ; d<= source.numDimensions() - 1; d ++) + { + N = N* (int) source.dimension( d ); + } double mTot = sum / N; // Cumulative arrays -- GitLab