48 (boost::format(
"Only afwMath::MEAN is supported, saw 0x%x") % flags).str());
50 if (binX <= 0 || binY <= 0) {
52 (boost::format(
"Binning must be >= 0, saw %dx%d") % binX % binY).str());
55 int const outWidth = in.getWidth() / binX;
56 int const outHeight = in.getHeight() / binY;
60 out->setXY0(in.getXY0());
61 *out =
typename ImageT::SinglePixel(0);
63 for (
int oy = 0, iy = 0; oy < out->getHeight(); ++oy) {
64 for (
int i = 0; i != binY; ++i, ++iy) {
65 typename ImageT::x_iterator optr = out->row_begin(oy);
66 for (
typename ImageT::x_iterator iptr = in.row_begin(iy), iend = iptr + binX * outWidth;
68 typename ImageT::SinglePixel val = *iptr;
70 for (
int j = 1; j != binX; ++j, ++iptr) {
77 for (
typename ImageT::x_iterator ptr = out->row_begin(oy),
end = out->row_end(oy); ptr !=
end;