+
+ int nPixels = nx * ny;
+ slist<double> vecImage;
+ for (int ix = 0; ix < nx; ix++)
+ for (int iy = 0; iy < ny; iy++)
+ vecImage.push_front (v[ix][iy]);
+ vecImage.sort();
+ slist<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;