meta-for IntegralImage also as IIntegralImage { static int[] scaledPixelsFromIntegralImage(int w, IntegralImage img) { ret scaledPixelsFromIntegralImage(img, w); } static int[] scaledPixelsFromIntegralImage(IntegralImage img, int w, int h default heightForWidth(img, w)) { int w1 = img.getWidth(), h1 = img.getHeight(); double stepX = doubleRatio(w1, w), stepY = doubleRatio(h1, h); int[] pixels = new[w*h]; int i = 0; double srcY = 0; double area = stepX*stepY; printVars ifdef scaledPixelsFromIntegralImage_debug("scaledPixelsFromIntegralImage", +w, +h, +w1, +h1, +stepX, +stepY, +area); for y to h: { double srcX = 0, nextSrcY = srcY+stepY; for x to w: { double nextSrcX = srcX+stepX; dbl r = doubleRatio(img.rectSum(srcX, srcY, nextSrcX, nextSrcY, 0), area); dbl g = doubleRatio(img.rectSum(srcX, srcY, nextSrcX, nextSrcY, 1), area); dbl b = doubleRatio(img.rectSum(srcX, srcY, nextSrcX, nextSrcY, 2), area); printVars ifdef scaledPixelsFromIntegralImage_debug("scaledPixelsFromIntegralImage", +r, +g, +b); pixels[i++] = rgbIntFromDoubles_fullAlpha(r, g, b); srcX = nextSrcX; } srcY = nextSrcY; } ret pixels; } }