static float horizontalAutoSplit_inverse_threshold = 0.1f; static L horizontalAutoSplit_inverse(BWImage img) { ret horizontalAutoSplit_inverse(img, horizontalAutoSplit_inverse_threshold); } static L horizontalAutoSplit_inverse(BWImage img, float threshold) { int w = img.getWidth(), h = img.getHeight(); float[] f = bwImageColumnBrightnesses(img); new L l; int j = -1; for (int i = 0; i < l(f); i++) if (f[i] >= threshold) { // start / continue streak if (j < 0) j = i; } else { if (j >= 0) { // end streak l.add(new Rect(j, 0, i-j, h)); j = -1; } } if (j >= 0) l.add(new Rect(j, 0, w-j, h)); ret l; }