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')