static L ocr_recognizeMultiLine_scored(RGBImage img) { BWImage bw = new BWImage(img); img = null; ret ocr_recognizeMultiLine_scored(bw); } static L ocr_recognizeMultiLine_scored(BufferedImage img) { BWImage bw = new BWImage(img); img = null; ret ocr_recognizeMultiLine_scored(bw); } static L ocr_recognizeMultiLine_scored(BWImage bw) { SimpleRecognizer sr = filledSimpleRecognizer_cached(); enableFullSearchInSimpleRecognizer(sr); ret ocr_recognizeMultiLine_scored(bw, sr); } static L ocr_recognizeMultiLine_scored(final BWImage bw, final SimpleRecognizer sr) { final L rects = autoSegment(bw); /*new L lines; for (Rect r : rects) lines.add(RecognizedText(r, sr.recognizeScored(bw.clip(r)))); ret lines;*/ ret parallelMap2(chunksOf(rects, 5), func(Rect r) -> RecognizedText { RecognizedText(r, sr.recognizeScored(bw.clip(r))) }); }