static IBWIntegralImage stripedBWIntegralImage(ThreadPoolExecutor executor default null, int stripes, BufferedImage img) { if (executor != null) stripes = min(stripes, executor.getMaximumPoolSize()); int _stripes = stripes; int minPixelsToSplit = 16384; int w = img.getWidth(), h = img.getHeight(); if (stripes <= 1 || w*h <= minPixelsToSplit) ret BWIntegralImage(img); else ret BWIntegralImage_twoParts(executor, img, (img2, idx) -> stripedBWIntegralImage(executor, (_stripes+idx) >> 1, img2)); }