Exemple #1
0
    def work(self, im):
        super(HandCropper, self).work(im)
        self.thresholdGrey(150)
        self.findContours()
        self.filterSudoku()  # minAreaRect旋转矩形, 筛选出九个九宫格块的轮廓
        self.alignPlank()  # 透视变换, 对齐并切割出大板(包含整个九宫格和七段管数字板)
        self.splitSudokuLight()

        self.threshold_im = self.threshold_sudoku_im
        self.findRecContours()
        self.filterRecContoursByArea(9)  # boundingRect, 筛选出九宫格块
        self.rec_contours = self.resumeOrder(self.rec_contours[:9],
                                             ykey=lambda it: it[1],
                                             xkey=lambda it: it[0])
        self.cropRecContours(self.rec_contours,
                             base_im=self.threshold_sudoku_im)

        if SAVE:
            self.saveCropResults()
            self.saveCropResults(results=[self.threshold_light_im])

        return self.results


if __name__ == '__main__':
    # d = Detector(LightCropper(), None)
    # d.work('../test_im/52648.jpg')

    d = Detector(HandCropper(), None)
    d.work('../test_im/real1.jpg')