srecord noeq G22POIPanel(G22PointOfInterest poi) is Swingable { G22Utils g22utils; G22GalleryImage img; new G22DataWrangler wrangler; cachedVisualize { g22utils = g22utils(poi); img = g22utils.galleryImageForMD5(poi.imageMD5); new L parts; if (img == null) ret jCenteredLabel("Image not found: " + poi.imageMD5); // Original image var is1 = g22utils.stdImageSurface(img); g22markPointAnimation(is1, poi.pt); parts.add(jCenteredSection("Original image", g22utils.wrap(is1))); // Blurred & Posterized wrangler.timings(g22utils.functionTimings()); wrangler.inputImage(img.getImage()); wrangler.importSettings(poi.bnpSettings); wrangler.stepUntilStage(wrangler.regionsStage); var is2 = g22utils.stdImageSurface(wrangler.posterizedImage); g22markPointAnimation(is2, poi.pt); parts.add(jCenteredSection("Blurred & Posterized", g22utils.wrap(is2))); // Regions var rm = wrangler.regionMaker; IImageRegion region = rm.getRegion(rm.regionAt(poi.pt)); var binaryImage = regionToBinaryImage(region); parts.add(jCenteredSection("Region around point", g22utils.wrap(g22utils.stdImageSurface(binaryImage)))); ret hgridWithSpacing(parts); } }