Warning: session_start(): open(/var/lib/php/sessions/sess_3bo6tcroh848n7cbksahivvpee, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass ChessOCR_Pipeline {
replace Segmenter with IF1>.
transient BufferedImage inputImage;
new SeenAndQueue possibleBoardPositions;
new ChessOCR_BoardsFound boardsFound;
ChessPieceRecognizer pieceRecognizer;
transient ReliableSingleThread rstProcessPositions = new(r processPositions);
// segmenters
transient ReliableSingleThread rstRunSegmenters = new(r runSegmenters);
new SeenAndQueue segmenters;
*() {
possibleBoardPositions.onAddedToQueue(rstProcessPositions);
segmenters.onAddedToQueue(rstRunSegmenters);
}
void addSegmenter(Segmenter s) { segmenters.add(s); }
void addPossiblePosition(Rect r) { possibleBoardPositions.add(r); }
// internal
void processPositions() {
Rect r;
while not null (r = possibleBoardPositions.popQueue())
boardsFound.add(pieceRecognizer.recognizeBoard(clipBufferedImage(inputImage, r)));
}
void runSegmenters() {
Segmenter seg;
while not null (seg = segmenters.popQueue())
possibleBoardPositions.addAll(seg.get(inputImage));
}
void cleanMeUp {
// cancel the threads
cleanUp(rstProcessPositions);
cleanUp(rstRunSegmenters);
}
}