X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=tools%2FclitkMaskOfIntegratedIntensityGenericFilter.txx;h=f80dc9910408a7378e18e2642837f2666a8cf27a;hb=d9c8c6e6c759655fc24d05d47b962d2ba574b95d;hp=3096d87cebdc89e10a009a3518778107f33caf23;hpb=64e548f2c8c2976f9573855e438437c9447d5d34;p=clitk.git diff --git a/tools/clitkMaskOfIntegratedIntensityGenericFilter.txx b/tools/clitkMaskOfIntegratedIntensityGenericFilter.txx index 3096d87..f80dc99 100644 --- a/tools/clitkMaskOfIntegratedIntensityGenericFilter.txx +++ b/tools/clitkMaskOfIntegratedIntensityGenericFilter.txx @@ -74,11 +74,17 @@ namespace clitk // initialize original index locations std::vector idx(v.size()); - iota(idx.begin(), idx.end(), 0); + std::vector > compVector(v.size()); + for (size_t i = 0; i < v.size(); ++i) { + compVector[i].first = v[i]; + compVector[i].second = i; + } // sort indexes based on comparing values in v - std::sort(idx.begin(), idx.end(), - [&v](size_t i1, size_t i2) {return v[i1] > v[i2];}); + std::sort(compVector.begin(), compVector.end(), comparator); + for (size_t i = 0; i < v.size(); ++i) { + idx[i] = compVector[i].second; + } return idx; } @@ -122,16 +128,16 @@ namespace clitk } // Sort (reverse) - auto indices = sort_indexes(values); + std::vector indices = sort_indexes(values); // Get max index of pixel to reach xx percent double current = 0.0; double max = GetPercentage()/100.0*total; int i=0; - auto n = input->GetLargestPossibleRegion().GetNumberOfPixels(); + int n = input->GetLargestPossibleRegion().GetNumberOfPixels(); std::vector should_keep(values.size());; std::fill(should_keep.begin(), should_keep.end(), 0); - while (current +bool comparator ( const std::pair& l, const std::pair& r) + { return l.first > r.first; } +//-------------------------------------------------------------------- }//end clitk