From c4ee96b10c1d348eb881757771c267c9c9ba5600 Mon Sep 17 00:00:00 2001 From: remicres <remi.cresson@teledetection.fr> Date: Wed, 31 Aug 2016 09:14:49 +0000 Subject: [PATCH] ENH: breaks the partial segmentations loop when max nb of iteration is reached --- include/lsgrmController.txx | 20 ++++++++++++-------- include/lsgrmHeader.h | 4 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/include/lsgrmController.txx b/include/lsgrmController.txx index 0d3490f..f241f23 100644 --- a/include/lsgrmController.txx +++ b/include/lsgrmController.txx @@ -14,7 +14,6 @@ Controller<TSegmenter>::Controller() m_TileWidth = 0; m_NbTilesX = 0; m_NbTilesY = 0; - m_CleanTemporaryFiles = true; m_Threshold = 75; m_Memory = 0; } @@ -103,18 +102,23 @@ void Controller<TSegmenter>::RunSegmentation() m_InputImage->GetNumberOfComponentsPerPixel(), isFusion); - // Update the number of iterations remaining - if (numberOfIterationsRemaining > numberOfIterationsForPartialSegmentations) - { - numberOfIterationsRemaining -= numberOfIterationsForPartialSegmentations; - } - #ifdef OTB_USE_MPI // Gathering useful variables GatherUsefulVariables(accumulatedMemory, isFusion); #endif + // Time monitoring ShowTime(t); + + // Update the number of iterations remaining + if (numberOfIterationsRemaining > numberOfIterationsForPartialSegmentations) + { + numberOfIterationsRemaining -= numberOfIterationsForPartialSegmentations; + } + else + { + break; + } } @@ -315,7 +319,7 @@ void Controller<TSegmenter>::GetAutomaticConfiguration() // Compactness float perimeter = tileWidth + tileHeight; float surface = tileWidth * tileHeight; - float compactness = perimeter / surface * (float) vcl_max(tileWidth,tileHeight); // [1,+inf] + float compactness = perimeter / surface * (float) std::max(tileWidth,tileHeight); // [1,+inf] // Update minimum criterion float criterion = compactness / percentMemory; // ]0, +inf] diff --git a/include/lsgrmHeader.h b/include/lsgrmHeader.h index 95dad7a..0cb91ee 100644 --- a/include/lsgrmHeader.h +++ b/include/lsgrmHeader.h @@ -19,8 +19,8 @@ #endif /* - * This function returns TRUE if it's to the process #myrank to do the - * work on the yard #div in a pool of #nprocs threads + * This function returns TRUE if the process #myrank is assigned + * to the task #div in a pool of #nprocs processes */ bool MyTurn(int div = 0) { -- GitLab