!752 concepts. concept Result { BWImage inputImage; float horizontalSplitThreshold; L characters; S text; } static new MultiMap md5ToChar; p-awt { L data = getData(); JTable table = showTableWithImages("Taught Characters", splitAtSpace("Image MD5 Character"), data); table.setRowHeight(25); } static L getData() { Concepts in = new Concepts("#1005726").load(); new L data; for (Result r : in.list(Result)) { S text = contains(r.text, "[") ? "" : r.text; for (int i = 0; i < l(r.characters); i++) { BWImage clip = autoCroppedBWImage(r.characters.get(i)); S md5 = md5OfBWImage(clip); S c = substring(text, i, i+1); S s = or2(c, "?"); if (nempty(c)) md5ToChar.setPut(md5, c); data.add(ll(clip.getBufferedImage(), md5, s)); } } sortByIndex(data, 2); ret data; }