!7

static ScreenLens lens;
static volatile L<Rect> segments;
static BufferedImage imageForSegments;
static int zoom = 3; // can also choose 2

p-substance {
  lens = new ScreenLens;
  lens.w = lens.h = 100;
  lens.postProcess = func(BufferedImage img) {
    //BWImage bw = bwImageTo2Bit(new BWImage(img), 0.5f);
    BWImage bw = bwResizeSmooth(new BWImage(img), img.getWidth()*zoom);
    img = bw.getBufferedImage();
    segments = autoSegment(bw, 3);
    imageForSegments = img;
    drawBoxes(img, rectsToRectangles(segments), Color.red, 0.8f);
    ret img;
  };
  lens.start();
}