コード例 #1
0
 def test_textgrounder(self):
     grounder = TextGrounder()
     characters = "0" * len(self.segments)
     grounder.ground(self.img, self.segments, characters)
     self.assertTrue(self.img.is_grounded)
     self.assertEqual(reconstruct_chars(self.img.ground.classes),
                      characters)
コード例 #2
0
 def _test_ocr(self, train_file, test_file):
     # get data from images
     ground_truth = test_file.ground.classes
     test_file.remove_ground()
     # create OCR
     segmenter = ContourSegmenter(blur_y=5, blur_x=5)
     extractor = SimpleFeatureExtractor()
     classifier = KNNClassifier()
     ocr = OCR(segmenter, extractor, classifier)
     # train and test
     ocr.train(train_file)
     chars, classes, _ = ocr.ocr(test_file, show_steps=False)
     print(chars)
     print(reconstruct_chars(ground_truth))
     self.assertEqual(chars, reconstruct_chars(ground_truth))
     self.assertEqual(list(classes), list(ground_truth))
コード例 #3
0
    def test_terminal_grounder(self):
        terminal = TerminalGrounder()
        characters = "0" * len(self.segments)
        mock_input_gen = iter(characters)

        def mock_input(prompt):
            return next(mock_input_gen)

        with mock.patch('six.moves.input', mock_input):
            terminal.ground(self.img, self.segments)

        self.assertTrue(self.img.is_grounded)
        self.assertEqual(reconstruct_chars(self.img.ground.classes), "0" * len(self.segments))
コード例 #4
0
    def test_terminal_grounder(self):
        terminal = TerminalGrounder()
        characters = "0" * len(self.segments)
        mock_input_gen = iter(characters)

        def mock_input(prompt):
            return next(mock_input_gen)

        with mock.patch('six.moves.input', mock_input):
            terminal.ground(self.img, self.segments)

        self.assertTrue(self.img.is_grounded)
        self.assertEqual(reconstruct_chars(self.img.ground.classes),
                         "0" * len(self.segments))
コード例 #5
0
    def test_usergrounder(self):
        ESC_KEY = 27
        ZERO_KEY = 48
        keys = [ZERO_KEY] * len(self.segments) + [ESC_KEY]
        mock_generator = iter(keys)

        def mock_input(*args):
            return next(mock_generator)

        grounder = UserGrounder()
        with mock.patch('cv2.waitKey', mock_input):
            with mock.patch('cv2.imshow'):
                grounder.ground(self.img, self.segments)
        self.assertTrue(self.img.is_grounded)
        self.assertEqual(reconstruct_chars(self.img.ground.classes), "0" * len(self.segments))
コード例 #6
0
    def test_usergrounder(self):
        ESC_KEY = 27
        ZERO_KEY = 48
        keys = [ZERO_KEY] * len(self.segments) + [ESC_KEY]
        mock_generator = iter(keys)

        def mock_input(*args):
            return next(mock_generator)

        grounder = UserGrounder()
        with mock.patch('cv2.waitKey', mock_input):
            with mock.patch('cv2.imshow'):
                grounder.ground(self.img, self.segments)
        self.assertTrue(self.img.is_grounded)
        self.assertEqual(reconstruct_chars(self.img.ground.classes),
                         "0" * len(self.segments))
コード例 #7
0
 def test_textgrounder(self):
     grounder = TextGrounder()
     characters = "0" * len(self.segments)
     grounder.ground(self.img, self.segments, characters)
     self.assertTrue(self.img.is_grounded)
     self.assertEqual(reconstruct_chars(self.img.ground.classes), characters)