X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsim%2Fimagefile.cpp;h=3e97fb25c3db7315c25625e8a54ae373ab6299dd;hp=81de74181519a27e93db82c9d4eac71748b5bd2b;hb=133c98cb0d4721c9e3b552321b73f4869fba07d6;hpb=b077f2d1da29c5ee22a7c8cb9f8bd2dc25373e82 diff --git a/libctsim/imagefile.cpp b/libctsim/imagefile.cpp index 81de741..3e97fb2 100644 --- a/libctsim/imagefile.cpp +++ b/libctsim/imagefile.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: imagefile.cpp,v 1.20 2000/12/16 06:12:47 kevin Exp $ +** $Id: imagefile.cpp,v 1.21 2000/12/17 19:08:06 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -274,20 +274,16 @@ ImageFile::statistics (double& min, double& max, double& mean, double& mode, dou mode = (max_binindex * spread / (nbin - 1)) + min; int nPixels = nx * ny; - std::list vecImage; + std::vector vecImage; for (int ix5 = 0; ix5 < nx; ix5++) for (int iy = 0; iy < ny; iy++) - vecImage.push_front (v[ix5][iy]); - vecImage.sort(); - std::list::const_iterator iter = vecImage.begin(); - for (int i = 0; i < (nPixels / 2) - 1; i++) - iter++; // Advance iterator to (nPixels / 2) - 1; - - if (nPixels % 2) { // Odd - iter++; - median = *iter; - } else // Even - median = (*iter++ + *iter) / 2; + vecImage.push_back (v[ix5][iy]); + std::sort(vecImage.begin(), vecImage.end()); + + if (nPixels % 2) // Odd + median = vecImage[((nPixels - 1) / 2)]; + else // Even + median = (vecImage[(nPixels / 2) - 1] + vecImage[nPixels / 2]) / 2; }