** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: imagefile.cpp,v 1.19 2000/12/16 02:44:26 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
bool
-ImageFile::printComparativeStatistics (const ImageFile& imComp, ostream& os) const
+ImageFile::printComparativeStatistics (const ImageFile& imComp, std::ostream& os) const
{
double d, r, e;
if (comparativeStatistics (imComp, d, r, e)) {
- os << " Normalized root mean squared distance (d): " << d << endl;
- os << " Normalized mean absolute distance (r): " << r << endl;
- os << "Worst case distance (2x2 pixel average) (e): " << e << endl;
+ os << " Normalized root mean squared distance (d): " << d << std::endl;
+ os << " Normalized mean absolute distance (r): " << r << std::endl;
+ os << "Worst case distance (2x2 pixel average) (e): " << e << std::endl;
return true;
}
return false;
void
-ImageFile::printStatistics (ostream& os) const
+ImageFile::printStatistics (std::ostream& os) const
{
double min, max, mean, mode, median, stddev;
statistics (min, max, mean, mode, median, stddev);
- os << " min: " << min << endl;
- os << " max: " << max << endl;
- os << " mean: " << mean << endl;
- os << " mode: " << mode << endl;
- os << "median: " << median << endl;
- os << "stddev: " << stddev << endl;
+ os << " min: " << min << std::endl;
+ os << " max: " << max << std::endl;
+ os << " mean: " << mean << std::endl;
+ os << " mode: " << mode << std::endl;
+ os << "median: " << median << std::endl;
+ os << "stddev: " << stddev << std::endl;
}
mode = (max_binindex * spread / (nbin - 1)) + min;
int nPixels = nx * ny;
- list<double> vecImage;
+ std::vector<double> vecImage;
for (int ix5 = 0; ix5 < nx; ix5++)
for (int iy = 0; iy < ny; iy++)
- vecImage.push_front (v[ix5][iy]);
- vecImage.sort();
- list<double>::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());\r
+\r
+ if (nPixels % 2) // Odd
+ median = vecImage[((nPixels - 1) / 2)];\r
+ else // Even
+ median = (vecImage[(nPixels / 2) - 1] + vecImage[nPixels / 2]) / 2;
}