!752

lib 1003956 // TinyBrain sources from 2015-2-16

import eyedev._14.LineFinder;
import eyedev._09.Segment;
import eyedev._09.FlexibleSegmenter;
import prophecy.common.image.BWImage;

p {
  BWImage img = new BWImage(loadImg("#1004061"));
  
  new L<Segment> allSegments;
  
  // find lines
  L<Segment> lines = new LineFinder().segment(img);
  allSegments.addAll(lines);
  
  // find characters
  new FlexibleSegmenter lineSegmenter;
  //lineSegmenter.setThreshold(0.75f);
  for (Segment line : lines) {
    List<Segment> letters = lineSegmenter.segment(line.segmentImage);
    //MarkLine baseLine = lineSegmenter.getMarkLine(MarkLine.Type.base);
    //MarkLine topLine = lineSegmenter.getMarkLine(MarkLine.Type.top);
    for (Segment letter : letters)
      letter.boundingBox.translate(line.boundingBox.x, line.boundingBox.y);
    allSegments.addAll(letters);
  }

  final L<Rectangle> rects = collect(allSegments, "boundingBox");
  //psl(rects);
  tbShowImageAndRects(img, rects);
}