def _build_output_puzzles(self): """ Constructs the final output puzzles that are to be returned by the multiple puzzle solver. Returns (List[Puzzle]): List of the final solved puzzles. """ solved_puzzles, _ = self._paikin_tal_solver.get_solved_puzzles() # Build the results information Puzzle.output_results_information_and_puzzles(PuzzleSolver.MultiPuzzle, self._image_filenames, self._paikin_tal_solver, solved_puzzles, self._start_timestamp) # Merge the pieces into a set of solved puzzles output_puzzles = [Puzzle.reconstruct_from_pieces(solved_puzzles[i], i) for i in xrange(0, len(solved_puzzles))] # Optionally export the solved image files. if MultiPuzzleSolver._SAVE_FINAL_PUZZLE_IMAGES: self._output_reconstructed_puzzle_image_files(output_puzzles) return output_puzzles
def _save_stitching_piece_solved_puzzle_to_file(self, stitching_piece_segment_info): """ Saves the solved image when perform single puzzle solving to a file. Args: stitching_piece_segment_info (StitchingPieceInfo): Information on the stitching piece information. """ solved_puzzle, _ = self._paikin_tal_solver.get_solved_puzzles() # Reconstruct the puzzle new_puzzle = Puzzle.reconstruct_from_pieces(solved_puzzle[0], 0) max_numb_zero_padding = 4 # Store the reconstructed image segment_id = stitching_piece_segment_info.segment_numb filename_descriptor = "segment_" + str(segment_id).zfill(max_numb_zero_padding) stitching_piece_id = stitching_piece_segment_info.piece_id filename_descriptor += "_stitching_piece_id_" + str(stitching_piece_id).zfill(max_numb_zero_padding) # Build the filename and output to a file new_puzzle.save_to_file(self._make_image_filename(filename_descriptor))
def _save_single_solved_puzzle_to_file(self, segmentation_round): """ Saves the solved image when perform single puzzle solving to a file. Args: segmentation_round (int): iteration count for the segmentation """ solved_puzzle, _ = self._paikin_tal_solver.get_solved_puzzles() # Reconstruct the puzzle new_puzzle = Puzzle.reconstruct_from_pieces(solved_puzzle[0], 0) # Store the reconstructed segmented image max_numb_zero_padding = 4 filename_descriptor = "single_puzzle_round_" + str(segmentation_round).zfill(max_numb_zero_padding) new_puzzle.save_to_file(self._make_image_filename(filename_descriptor)) # Store the best buddy image. filename_descriptor += "_best_buddy_acc" output_filename = self._make_image_filename(filename_descriptor) self._paikin_tal_solver.best_buddy_accuracy.output_results_images(PuzzleSolver.MultiPuzzle, self._image_filenames, [new_puzzle], self._paikin_tal_solver.puzzle_type, self._start_timestamp, output_filenames=[output_filename])