class SudocubeDataExtractor(object): def __init__(self): self._init_dependencies() def _init_dependencies(self): self._front_extractor = FrontFaceExtractor() self._side_extractor = SideFaceExtractor() self._top_extractor = TopFaceExtractor() def extract_data_from_image_with_corner_info(self, image, corners): front_data, front_red_square = self._front_extractor.extract_data(image, corners[front_face]) side_data, side_red_square = self._side_extractor.extract_data(image, corners[side_face]) top_data, top_red_square = self._top_extractor.extract_data(image, corners[top_face]) red_square_position = self._get_red_square_position(front_red_square, side_red_square, top_red_square) print top_data print front_data print side_data print red_square_position return {front_face: front_data, side_face: side_data, top_face: top_data, red_square: red_square_position} def _get_red_square_position(self, front, side, top): if front is not None: position = (front_face, front) elif side is not None: position = (side_face, side) elif top is not None: position = (top_face, top) return position
def _init_dependencies(self): self._front_extractor = FrontFaceExtractor() self._side_extractor = SideFaceExtractor() self._top_extractor = TopFaceExtractor()