meta-for BWIntegralImage also as IBWIntegralImage { static byte[] scaledGrayBytesFromBWIntegralImage(int w, BWIntegralImage img) { ret scaledGrayImageFromBWIntegralImage(img, w); } static byte[] scaledGrayBytesFromBWIntegralImage(BWIntegralImage img, int w, int h default heightForWidth(img, w)) { int w1 = img.getWidth(), h1 = img.getHeight(); double stepX = w1/w, stepY = h1/h; byte[] pixels = new[w*h]; int i = 0; double srcY = 0; for y to h: { double srcX = 0, nextSrcY = srcY+stepY; for x to w: { double nextSrcX = srcX+stepX; int pixel = iround(img.getPixelAverage(srcX, srcY, nextSrcX, nextSrcY)); pixels[i++] = clampToUByte(pixel); srcX = nextSrcX; } srcY = nextSrcY; } ret pixels; } }