コード例 #1
0
class SudokuCapturer:
    """
    Class which take capture photos from default camera
    and recognise if there's sudoku on photo
    """

    def __init__(self):
        """C-tor, opens camera"""
        camera_port = 0  # 0 is for default camera
        self._camera_capturer = cv2.VideoCapture(camera_port)
        self._dectector = SudokuDetector()
        logging.info("Camera opened")

    def __del__(self):
        """D-tor, responsible for releasing camera"""
        logging.info("Releasing camera")
        self._camera_capturer.release()

    def capture_sudoku(self):
        """
            takes photo from default camera of computer and checks if there's sudoku on it
            if no sudoku was found it returns None
            if sudoku was found returns image of sudoku
        """
        if self._camera_capturer.isOpened():
            logging.info("Capturing photo")
            _, image = self._camera_capturer.read()
            cv2.waitKey(100)  # used to slow down
            return self._dectector.detect_sudoku(image)
        else:
            logging.info("Couldn't open camera")
            sys.exit(0)